专题四1004
来源:互联网 发布:python程序转为exe 编辑:程序博客网 时间:2024/06/12 01:48
题意:给出村庄之间两两的距离,求任意两个村庄都连通,所要建设的公路最短长度
解题思路:刚开始看到还以为是和第三题一样的,所以直接把第三题代码粘上去了,后来才发现不一样,读了一下题,和第一题差不多,第一题用的是kruskal,所以这题就试了一下prime。
感想:虽然题很水,但是还是要照着课本写,还是不能独立写出来
源码:
#include<iostream>
using namespace std;
const int N=110;
const int INF=0x3f3f3f3f;
int n,ans;
int imap[N][N],dis[N],vis[N];
void Prim(){
int i;
for(i=1;i<=n;i++){
dis[i]=imap[1][i];
vis[i]=0;
}
dis[1]=0;
vis[1]=1;
int j,k,tmp;
for(i=1;i<=n;i++){
tmp=INF;
for(j=1;j<=n;j++)
if(!vis[j] && tmp>dis[j]){
k=j;
tmp=dis[j];
}
if(tmp==INF)
break;
vis[k]=1;
ans+=dis[k];
for(j=1;j<=n;j++)
if(!vis[j] && dis[j]>imap[k][j])
dis[j]=imap[k][j];
}
}
int main(){
while(cin>>n&&n){
int num1,num2,temp;
for(int i=0;i<n*(n-1)/2;i++)
{
cin>>num1>>num2;
cin>>temp;
imap[num1][num2]=temp;
imap[num2][num1]=temp;
}
ans=0;
Prim();
cout<<ans<<endl;
}
return 0;
}
Problem D
Time Limit : 4000/2000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 59 Accepted Submission(s) : 25
31 2 11 3 22 3 441 2 11 3 41 4 12 3 32 4 23 4 50
35
- 专题四1004
- 专题四1004
- 1004-D专题四
- 专题四 · 1004
- 杭电ACM专题四1004
- 3G专题四
- LDAP专题(四)
- 专题四1003
- 专题四1003
- 专题四 · 1001
- 专题四 Problem A
- 专题四 Problem B
- 专题四 Problem C
- 专题四 Problem D
- 专题四 Problem E
- 专题四1001
- 专题四1005
- 专题四ACM1003
- Android定位获取当前经纬度
- Python文件与文件系统
- SQL 的常用更改表约束
- java基础知识:break语句和continue语句
- Android 开发环境下载地址
- 专题四1004
- 实现应用专属通知铃声
- Unique Paths 寻找从起点到终点的路径个数
- 深度优先搜索-ZOJ 1047 Image Perimeters
- 新手学JAVA(十一)-多线程----线程的生命周期
- 奇怪的go语言iota
- Computer Vision and the machine learning workflow
- 关于CocoaPod安装常见问题
- Java Calendar转化为Date类型方法