【Prim】-LightOJ-1029-Civil and Evil Engineer
来源:互联网 发布:淘宝运营教程百度网盘 编辑:程序博客网 时间:2024/06/10 00:15
题目链接:http://lightoj.com/volume_showproblem.php?problem=1029
题目描述:输出最短路和最长路的平均值
解题思路:两遍最短路,注意别忘了打Case数。注意完全反过来的最长路写法。注意比赛时的心理素质
AC代码:
#include <iostream>#include <cstdio>#include <cstring>#define INF 9999999using namespace std;typedef struct node{ int maxw,minw;};int N;node cost[120][120];bool vis[120];int dis[120];void reset(){ memset(cost,0,sizeof(cost)); int i,j; for(i=0;i<120;i++) for(j=0;j<120;j++) { cost[i][j].minw=INF; cost[i][j].maxw=-1; }}int primmin(){ memset(vis,0,sizeof(vis)); for(int i=0;i<120;i++) dis[i]=INF; int ans=0,st=0,i; vis[st]=1; while(1) { for(i=0;i<=N;i++) { dis[i]=min(dis[i],cost[st][i].minw); } int mindis=INF; for(i=0;i<=N;i++) { if(dis[i]<mindis&&!vis[i]) { mindis=dis[i]; st=i; } } if(mindis==INF)break; ans+=mindis; vis[st]=1; } return ans;}int primmax(){ memset(vis,0,sizeof(vis)); for(int i=0;i<120;i++) dis[i]=-1; int ans=0,st=0,i; vis[st]=1; while(1) { for(i=0;i<=N;i++) { dis[i]=max(dis[i],cost[st][i].maxw); } int maxdis=-1; for(i=0;i<=N;i++) { if(dis[i]>maxdis&&!vis[i]) { maxdis=dis[i]; st=i; } } if(maxdis==-1)break; ans+=maxdis; vis[st]=1; } return ans;}int main(){ int T,u,v,w,i,j,ansmin,ansmax,cc=1; cin>>T; while(T--) { reset(); cin>>N; ansmax=0; while(scanf("%d%d%d",&u,&v,&w),u||v||w) { cost[u][v].maxw=cost[v][u].maxw=max(cost[u][v].maxw,w); cost[u][v].minw=cost[v][u].minw=min(cost[u][v].minw,w); } ansmin=primmin(); ansmax=primmax(); cout<<"Case "<<cc<<": "; int ans=ansmin+ansmax; if(ans%2==0) cout<<ans/2<<endl; else cout<<ans<<"/2"<<endl; cc++; } return 0;}
0 0
- 【Prim】-LightOJ-1029-Civil and Evil Engineer
- LIGHTOJ 1029 – CIVIL AND EVIL ENGINEER 【PRIM】
- LightOJ 1029 Civil and Evil Engineer
- LightOj 1029 - Civil and Evil Engineer
- LightOJ 1029 Civil and Evil Engineer
- LightOj-1029-Civil and Evil Engineer
- LightOJ - 1029 Civil and Evil Engineer(最大/小生成树)
- Civil and Evil Engineer
- Civil and Evil Engineer
- LightOJ -1029--Civil and Evil Engineer(最小生成树&&最大生成树)
- LightOJ 1029-Civil and Evil Engineer(最小/大生成树)
- lightoj-1029-Civil and Evil Engineer(最小生成树+克鲁斯卡尔算法)
- LightOJ1029-Civil and Evil Engineer-生成树
- light oj 1029 - Civil and Evil Engineer (最大生成树+最小生成树)
- Civil and Evil Engineer(最小生成树+最大生成树)
- attributes of senior engineer and expert engineer
- LightOJ 1040 – Donation 【Prim】
- Getters and Setters Are Evil or Not Evil?
- 轮廓提取
- SAP query传输以后需要重新生成程序
- java学习笔记五——分支、循环语句
- On Corruption and Numbers(l-r)
- for循环的“大圈套小圈思想”
- 【Prim】-LightOJ-1029-Civil and Evil Engineer
- java学习笔记六——数组、向量、字符串
- 电子商务设计师书籍的记录
- Android 缩略图工具类(Android 2.2新特性)
- 编写程序打印帕斯卡三角。
- 体系架构
- JAVA环境变量设置
- Java的匿名内部类
- MySQL where in 排序