Codeforces 436 C. Dungeons and Candies
来源:互联网 发布:banner广告制作软件 编辑:程序博客网 时间:2024/06/15 16:21
MST....
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <vector>using namespace std;struct Edge{ int u,v,w;}edge[1100*1100];bool cmp(Edge a,Edge b){ return a.w<b.w;}int n,m,k,w;int fa[1100],diff[1100][1100];char ch[1100][20][20];vector<int> vc[1100];int get_diff(char a[][20],char b[][20] ){ int ret=0; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { if(a[i][j]!=b[i][j]) ret++; } } return ret;}int getfa(int x){ if(x==fa[x]) return x; else return fa[x]=getfa(fa[x]);}int kruscal(int eg){ sort(edge,edge+eg,cmp); for(int i=0;i<=k+1;i++) { fa[i]=i; vc[i].clear(); } int cnt=k+1,ans=0; for(int i=0;i<eg;i++) { int f1=getfa(edge[i].u); int f2=getfa(edge[i].v); if(f1!=f2) { fa[f1]=f2; ans+=edge[i].w; vc[edge[i].u].push_back(edge[i].v); vc[edge[i].v].push_back(edge[i].u); cnt--; if(cnt==1) break; } } return ans;}void dfs(int u,int fa){ for(int i=0,sz=vc[u].size();i<sz;i++) { int v=vc[u][i]; if(v==fa) continue; printf("%d %d\n",v,u); dfs(v,u); }}int main(){ scanf("%d%d%d%d",&n,&m,&k,&w); for(int i=1;i<=k;i++) { for(int j=0;j<n;j++) { scanf("%s",ch[i][j]); } } for(int i=1;i<=k;i++) { for(int j=i+1;j<=k;j++) { diff[j][i]=diff[i][j]=get_diff(ch[i],ch[j])*w; } } int eg=0; for(int i=1;i<=k;i++) { edge[eg++]=(Edge){0,i,n*m}; for(int j=i+1;j<=k;j++) { edge[eg++]=(Edge){i,j,diff[i][j]}; } } printf("%d\n",kruscal(eg)); dfs(0,0); return 0;}
0 1
- Codeforces 436 C. Dungeons and Candies
- CodeForces 436C (Dungeons and Candies)
- C. Dungeons and Candies (Zepto Code Rush 2014 最小生成树)
- Zepto Code Rush 2014——Dungeons and Candies
- Codeforces 526C Om Nom and Candies
- Codeforces 526C - Om Nom and Candies
- Codeforces 526C - Om Nom and Candies (贪心 + 思维)
- codeforces 526 c Om Nom and Candies 剩余系
- Codeforces 526C - Om Nom and Candies(贪心,暴力)
- Codeforces 526C Om Nom and Candies 完全背包
- codeforces Inna and New Matrix of Candies
- 526C - Om Nom and Candies
- CF 526C Om Nom and Candies
- codeforces 400B. Inna and New Matrix of Candies
- codeforces 400B - Inna and New Matrix of Candies
- codeforces#234_div2_B Inna and New Matrix of Candies
- codeforces 400B Inna and New Matrix of Candies
- Inna and New Matrix of Candies(CodeForces - 400B)
- oracle 11gr2 开启memery_target 之后内存震荡
- Subversion Native Library Not Available & Incompatible JavaHL library loaded
- 学习了
- 搭建图像搜索引擎(之0):霍比特人&直方图
- JavaScript利用append添加元素报错
- Codeforces 436 C. Dungeons and Candies
- Linux简介
- eclipse中直接打开工程文件所在目录插件
- 程序配置文件格式测试
- oracle 增删改查
- Java编程之反射-1
- Light OJ 1113
- 浅谈ROS操作系统及其应用趋势
- Linux安装