POJ 1789 最小生成树(裸..当模板用把)
来源:互联网 发布:第十域辅助软件 编辑:程序博客网 时间:2024/06/16 08:27
基本就是裸的算法
当模板用把。。
#include<stdio.h>#include<string.h>#include<algorithm>#include<vector>#include<queue>using namespace std;#define MAX 2014#define P pair<int,int>#define fst first#define sec second#define MS(x) memset(x,0,sizeof(x))char car[MAX][20];int d[MAX][MAX];int minCost[MAX];int used[MAX];int diff(char s1[],char s2[]){int di=0;for(int i=0;i<7;i++)if(s1[i]!=s2[i])di++;return di;}priority_queue<P,vector<P>,greater<P> > q;int main(){int n;while(scanf("%d",&n)&&n!=0){MS(d);MS(used);while(!q.empty())q.pop();for(int i=0;i<MAX;i++)minCost[i]=0x3f3f3f3f;for(int i=0;i<MAX;i++)for(int j=0;j<MAX;j++)d[i][j]=0x3f3f3f3f;for(int i=0;i<n;i++)scanf("%s",car[i]);for(int i=0;i<n;i++)for(int j=0;j<i;j++){int t=diff(car[i],car[j]);d[i][j]=d[j][i]=t;}q.push(P(0,0));int ans=0;for(int i=0;i<n;i++)// 这里一定要是 n 次因为第一次不算加边{while(used[q.top().sec])q.pop();P tp=q.top();q.pop();ans+=tp.fst;int v=tp.sec;used[v]=1;for(int j=0;j<MAX;j++){if(!used[j]&&d[v][j]<minCost[j]){q.push(P(d[v][j],j));minCost[j]=d[v][j];}}}printf("The highest possible quality is 1/%d.\n",ans);}return 0;}
0 0
- POJ 1789 最小生成树(裸..当模板用把)
- POJ 1789 Truck History 最小生成树模板题
- poj 1789 Truck History(最小生成树模板题)
- poj 1789 Truck History 最小生成树模板题
- poj 1258 Agri-Net(最小生成树模板代码)
- 【POJ 3241】曼哈顿最小生成树(模板整理)
- POJ - 1287 Networking(最小生成树模板题)
- 【最小生成树】(模板-prim算法)poj 1258
- poj-1258-最小生成树kruskal模板
- 最小生成树(模板)
- poj 1789(最小生成树)
- poj 1789 (最小生成树)
- POJ 1789 (最小生成树)
- poj 1789 (最小生成树 Prime)
- POJ 1789(最小生成树)
- poj 1789(最小生成树)
- poj 1789 最小生成树
- poj 1789 最小生成树
- Cocos2d-x 3.0beta New Label新特性—描边,阴影,发光
- CUGB图论专场:B - ROADS(邻接表+dijkstra优先队列优化)
- div+css提高篇之position定位relative与absolute
- QT 的信号与槽机制介绍
- java jni tutorial
- POJ 1789 最小生成树(裸..当模板用把)
- devstack的重启后g-api不能启动的问题
- Unix下用Mplayer播放RTP流媒体
- Oj笔记:读入一行字符串
- HDOJ 1241 Oil Deposits
- 重启Tomcat出现这样的错误
- 【脚本练习】shell脚本
- 基于ZeroMQ程序库的分布式存储系统
- 吐槽一下北京创客空间的新年118爬楼梯活动