poj 1789
来源:互联网 发布:淘宝和微商的区别 编辑:程序博客网 时间:2024/05/12 20:13
prim就行
不同字母为距离
注意几个地方
第一
能不用string就不用string,就因为他超时了;
第二
cost[i][j]
最好是i i+1
不要是1 1这样for循环
前者跑了438
后者跑了579ms
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<vector>using namespace std;const int INF=1e9+7;const int maxn=2005;int cost[maxn][maxn];bool visit[maxn];int mincost[maxn];int n;char p[maxn][8];int diff(char a[],char b[]){int sum=0;for(int i=0;i<7;i++)if(a[i]!=b[i]) sum++;return sum;}int prim(){for(int i=1;i<=n;i++)mincost[i]=INF;memset(visit,false,sizeof(visit));mincost[1]=0;int res=0;for(int i=1;i<=n;i++){int v=-1;for(int u=1;u<=n;u++)if(!visit[u]&&(v==-1||mincost[u]<mincost[v])) v=u;if(v==-1) break;visit[v]=true;res+=mincost[v];for(int u=1;u<=n;u++){mincost[u]=min(mincost[u],cost[v][u]);}}return res;}int main(){while(~scanf("%d",&n)&&n){for(int i=1;i<=n;i++){scanf("%s",p[i]);} for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++)cost[i][j]=cost[j][i]=diff(p[i],p[j]);printf("The highest possible quality is 1/%d.\n",prim()); } }
阅读全文
0 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
- 启动Docker时,报 Failed to instantiate CLSID_VirtualBox w/ IVirtualBox, but CLSID_VirtualBox w/ IUnknown
- EasyTouch初步使用(Button)
- Ruby Dir
- 隔夜全球市场最大变化 五张图看懂
- 虚拟机连网的三大模式
- poj 1789
- MFC TXT 文本文件的读写
- JS跨域详解
- zzuli2177
- 微服务架构的基础框架选择:Spring Cloud还是Dubbo 最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论微服务架构。近期也看到各大技术社区开始组织一些沙龙和论坛来分
- 大数据学习日记day2
- 关于接口安全
- SpringAOP技术学习---Day3
- springBoot中@Scheduled执行原理解析