news 2026/7/28 15:04:16

PAT甲级 1072 Gas Station 单源最短路

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PAT甲级 1072 Gas Station 单源最短路


Solution:

题目要求:选择建立一个最佳的加油站,前提是这个加油站必须能连通所有的居民住所,并使得所有居民住所中距离这个加油站最近的距离尽可能远,若有多个选择,则选择平均距离最小的加油站,若仍然有多个选择,则选择序号较小的加油站。

代码如下:

//单源最短路#include<iostream>#include<math.h>#include<algorithm>#include<iomanip>#include<string>#include<vector>#defineMAX 1500#defineINF 0x3f3f3f3fusing namespace std;structgas_station{doubledis;//距离加油站最近的距离加油站的距离doubleavg_dis;//平均距离intindex;};vector<gas_station>sta;intvisit[MAX];//访问数组doubledis[MAX];//记录最短距离intmp[MAX][MAX];intn,m;//n为结点数,m为加油站数intk,d;//k为边数,d为gas station最大服务范围voiddijkstra(ints){//dijkstrafor(inti=0;i<MAX;i++){//初始化dis和visitvisit[i]=0;dis[i]=INF;}dis[s]=0;for(inti=1;i<=n+m;i++){intminv=INF;intu=-1;for(intj=1;j<=n+m;j++){if(dis[j]<minv&&visit[j]==0){minv=dis[j];u=j;}}if(u==-1){return;}visit[u]=1;for(intv=1;v<=n+m;v++){if(visit[v]==0&&mp[u][v]!=INF){if(dis[v]>dis[u]+mp[u][v]){dis[v]=dis[u]+mp[u][v];}}}}}intto_index(string s){//将字符串转为下标intindex=0;for(inti=0;i<s.length();i++){if(s[i]!='G')index=index*10+s[i]-'0';}if(s[0]=='G'){index+=n;}returnindex;}boolcmp(gas_station a,gas_station b){if(a.dis>b.dis){returntrue;}elseif(a.dis==b.dis){if(a.avg_dis<b.avg_dis){returntrue;}elseif(a.avg_dis==b.avg_dis){returna.index<b.index;}}returnfalse;}intmain(){for(inti=0;i<MAX;i++){//初始化图for(intj=0;j<MAX;j++){mp[i][j]=INF;}}cin>>n>>m>>k>>d;string s1,s2;inta,b;intlen;for(inti=0;i<k;i++){//读入数据cin>>s1>>s2>>len;a=to_index(s1);b=to_index(s2);mp[a][b]=mp[b][a]=len;}for(inti=n+1;i<=n+m;i++){intminl=INF;doubletotal_dis=0.0;dijkstra(i);bool flag=true;for(intj=1;j<=n;j++){if(dis[j]>d){flag=false;break;}total_dis+=dis[j];if(dis[j]<minl){minl=dis[j];}}if(flag){gas_station temp;temp.dis=minl;temp.avg_dis=total_dis/n;temp.index=i;sta.push_back(temp);}}if(sta.empty()){cout<<"No Solution";}else{sort(sta.begin(),sta.end(),cmp);cout<<"G"<<sta[0].index-n<<endl;cout<<fixed<<setprecision(1)<<sta[0].dis<<" ";cout<<fixed<<setprecision(1)<<sta[0].avg_dis;}return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/28 15:03:27

渔人的直感:FF14钓鱼计时器终极指南 - 智能咬钩检测与幻海流预警

渔人的直感&#xff1a;FF14钓鱼计时器终极指南 - 智能咬钩检测与幻海流预警 【免费下载链接】Fishers-Intuition 渔人的直感&#xff0c;最终幻想14钓鱼计时器 项目地址: https://gitcode.com/gh_mirrors/fi/Fishers-Intuition 渔人的直感是一款专为《最终幻想14》玩家…

作者头像 李华
网站建设 2026/7/28 15:03:13

生产环境 AI 服务的十大血泪教训:一个过了凌晨四点的人的总结

生产环境 AI 服务的十大血泪教训&#xff1a;一个过了凌晨四点的人的总结 一、个性化深度引言 凌晨四点零七分&#xff0c;告警弹窗。NLP 服务延迟从 80ms 飙到 3800ms。查了二十分钟&#xff0c;不是模型的问题&#xff0c;是一个上游服务的日志量突然翻了十倍&#xff0c;把共…

作者头像 李华
网站建设 2026/7/28 15:03:07

【JAVA毕业设计】基于 SpringBoot 的轻量化线上航空机票销售管理系统设计 民航机票信息查询与智能预订服务系统(源码+文档+远程调试,全bao定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/7/28 15:02:58

大模型API成本优化:Codex代理接入DeepSeek的Token控制实战

在实际 AI 开发或集成项目中,我们常常会遇到一个棘手的问题:调用大模型 API 时,Token 消耗速度远超预期,导致成本急剧上升。特别是当我们将像 Codex 这样的代码生成工具或代理系统接入 DeepSeek 这类按 Token 计费的模型时,如果不加控制,一个看似简单的请求就可能产生数千…

作者头像 李华
网站建设 2026/7/28 15:02:30

JAVA计算机毕设之基于 SpringBoot 的智慧航空出行票务信息化管理系统 前后端分离架构的民航票务交易系统(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华