poj 1789
来源:互联网 发布:哪个淘宝搜词软件好 编辑:程序博客网 时间:2024/05/19 02:00
继续水题,练习prim模版的写法,记住一点:prim适合稠密图(用点),kruskal适合稀疏图(用边),算法复杂度分别为:O(n2),O(eloge)
本题关键在于看懂题目,知道如何派生车型,以及知道如何算不同车型之间的距离,找到连接所有车型的最短距离
qwertyxk1789Accepted15876K438MSGCC941B2012-12-20 21:28:45#include<stdio.h>#define MAX 999999#define NUM 2000char trucks[NUM+10][8];int map[NUM+10][NUM+10],lowCost[NUM+10];int prim(int N){int result=0,i,j,k,minCost;lowCost[1]=-1;for(i=2;i<=N;i++)lowCost[i]=map[1][i];for(i=2;i<=N;i++){minCost=MAX;for(j=2;j<=N;j++){if(lowCost[j]>0&&lowCost[j]<minCost){minCost=lowCost[j];k=j;}}lowCost[k]=-1;result+=minCost;for(j=2;j<=N;j++)lowCost[j]=map[k][j]<lowCost[j]?map[k][j]:lowCost[j];}return result;}int main(){int N;while(scanf("%d",&N)){if(N==0)break;int i,j,k;for(i=1;i<=N;i++){scanf("%s",&trucks[i]);for(j=1;j<=i-1;j++){int diff=0;for(k=0;k<=6;k++)if(trucks[i][k]!=trucks[j][k])diff++;map[i][j]=map[j][i]=diff;}map[i][i]=0;}printf("The highest possible quality is 1/%d.\n", prim(N));}return 0;}
- POJ 1789
- POJ 1789
- poj 1789
- poj 1789
- POJ 1789
- poj 1789
- POJ 1789
- POJ 1789
- poj.1789
- POJ 1789
- poj-1789
- poj 1789
- poj 1789
- POJ 1789
- poj 1789
- POJ-1789
- POJ 1789
- POJ 1789
- 2使用XlmWriter写NewBooks.xml文件。
- Android 中的 Service 全面总结
- 3使用XlmWrite把一个xml文件写入输出流中。在(demo2.aspx运行时显示xml文档)
- dialog
- MYSQL自动编号和字段数值唯一性
- poj 1789
- 5使用XmlDocument将dropdownlist中显示的书名的其它信息读入到相应的文本框中。
- logback for HTTP-access log functionality
- 万事开头难
- 局域网聊天系统__1.需求分析以及模型选择
- TextView属性大全
- c, c++ const的区别
- Android组件详解
- Android培训---终止和重启Activity