1072. Gas Station (30) PAT 甲级
来源:互联网 发布:c4d全局光照优化设置 编辑:程序博客网 时间:2024/06/05 09:37
传送门
#include<stdio.h>#include<string.h>#include<vector>#include<algorithm>using namespace std;#define MAX_V 1100#define INF 1000000000int G[MAX_V][MAX_V];int n,m,k,ds;int d[MAX_V];bool visited[MAX_V];void Dijkstra(int s){ memset(visited,false,sizeof(visited)); fill(d,d+MAX_V,INF); d[s]=0; for(int i=0;i<n+m;i++){ int u=-1,Min=INF; for(int j=1;j<=n+m;j++){ if(!visited[j]&&d[j]<Min){ u=j; Min=d[j]; } } if(u==-1) return; visited[u]=true; for(int v=1;v<=n+m;v++){ if(!visited[v]&&G[u][v]!=INF){ if(d[u]+G[u][v]<d[v]){ d[v]=d[u]+G[u][v]; } } } }}int getID(char str[]){ int len=strlen(str); int id=0; for(int i=0;i<len;i++){ if(str[i]!='G'){ id=id*10+str[i]-'0'; } } if(str[0]=='G') return n+id; return id;}int main(){ scanf("%d%d%d%d",&n,&m,&k,&ds); char house1[5],house2[5]; int dis,u,w; fill(G[0],G[0]+MAX_V*MAX_V,INF); for(int i=0;i<k;i++){ scanf("%s %s %d",house1,house2,&dis); int u=getID(house1); int v=getID(house2); G[u][v]=G[v][u]=dis; } double ansDis=-1; double ansAvg=INF; int ansID=-1; for(int i=n+1;i<=n+m;i++){ double min=INF,avg=0; Dijkstra(i); for(int j=1;j<=n;j++){ if(d[j]>ds){ min=-1; break; } if(d[j]<min) min=d[j]; avg+=1.0*d[j]/n; } if(min==-1) continue; if(min>ansDis){ ansDis=min; ansID=i; ansAvg=avg; } else{ if(min==ansDis&&avg<ansAvg){ ansID=i; ansAvg=avg; } } } if(ansID==-1) printf("No Solution\n"); else{ printf("G%d\n",ansID-n); printf("%.1f %.1f",ansDis,ansAvg); }}
0 0
- PAT甲级练习1072. Gas Station (30)
- 1072. Gas Station (30) PAT 甲级
- PAT甲级1072. Gas Station (30)
- 【PAT甲级】1072. Gas Station (30)
- PAT 甲级 1072. Gas Station (30)
- 1072. Gas Station (30)-PAT甲级真题(Dijkstra)
- PAT 1072. Gas Station (30)
- PAT 1072. Gas Station (30)
- 【PAT】1072. Gas Station (30)
- PAT 1072. Gas Station (30)
- PAT 1072. Gas Station
- PAT 1072. Gas Station
- PAT 1072. Gas Station
- 【PAT】1072. Gas Station
- pat 1072. Gas Station
- PAT A 1072. Gas Station (30)
- PAT-A-1072. Gas Station (30)
- 【PAT】【Advanced Level】1072. Gas Station (30)
- Excel macro note
- Vue-cli是何物?创建项目脚手架
- Failed to read candidate component class
- 什么是servlet入门级别和大拿?
- HTTP状态码之200和304
- 1072. Gas Station (30) PAT 甲级
- Swift 系统学习 17 guard else (守护)
- TCP 拆包分包
- 构建一个HTTP2请求到AVS
- Write dev design spec
- LeetCode之路——Regular Expression Matching
- win7x64下的redis安装与使用
- [UE4教程] UE4蓝图总结(入门)
- Swift 系统学习 18 结构体 改变结构体里面的元素