uva 10615 二分图匹配 每个点上的不同边必须染上不同颜色 求最小染色数
来源:互联网 发布:安装双系统win7和linux 编辑:程序博客网 时间:2024/04/25 08:07
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int xx[160],vis[160],g[160][160],d1[160],d2[160],n,res[160][160];char s[160][160];int match(int u){for(int i=1;i<=n;i++){if(!vis[i] && g[u][i]){vis[i]=1;if(!xx[i] || match(xx[i])){xx[i]=u;return 1;}}}return 0;}void solve(int c){memset(xx,0,sizeof(xx));for(int i=1;i<=n;i++){memset(vis,0,sizeof(vis));match(i);}for(int i=1;i<=n;i++){if(xx[i]){int u=xx[i];if(s[u][i]=='*'&&!res[u][i])res[u][i]=c;g[u][i]--;}}}int main(){int T;scanf("%d",&T);while(T--){memset(d1,0,sizeof(d1));memset(d2,0,sizeof(d2));memset(g,0,sizeof(g));scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%s",s[i]+1);for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(s[i][j]=='*'){d1[i]++;d2[j]++;g[i][j]++;}}}int tm=0;for(int i=1;i<=n;i++){tm=max(tm,max(d1[i],d2[i]));}printf("%d\n",tm);for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){while(d1[i]<tm && d2[j]<tm){d1[i]++;d2[j]++;g[i][j]++;}}}memset(res,0,sizeof(res));for(int i=1;i<=n;i++)solve(i);for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)printf("%d%c",res[i][j],j==n?'\n':' ');}}}
阅读全文
0 0
- uva 10615 二分图匹配 每个点上的不同边必须染上不同颜色 求最小染色数
- hdu5313 求构成完全二分图需要的最多的边数 染色+背包求最小差异
- HDU2444 二分图判断(BFS 的染色法) + 求最大匹配边数(DFS 的匈牙利算法)
- 为什么二分图的最大二分匹配数等于最小点覆盖数
- 一个二维矩阵存储的世界地图里,每个小方格区域被染上不同的颜色,求此图中的国家总数(上下左右不可斜对角)。
- 二分图,最大匹配数,最小点覆盖,最小边覆盖
- 网络流对于二分图的 最小点覆盖数 最大匹配数 最大独立点集数 的作用
- hdu 1054 Strategic Game 二分图的匹配,最小点覆盖数
- uva 10004 Bicoloring (二分图染色/求一个二分图)
- POJ 3041 Asteroids ( 最小点覆盖数=最大匹配数, 二分图匹配)
- 二分图最大匹配的König定理及其证明(最小点覆盖等于最大匹配数)
- 二分图的染色与匹配
- 【二分图匹配】 最小点覆盖==最大匹配数
- HDU 2236 矩阵不同行列寻找 最小最大数的差值 最小 二分匹配+二分枚举区间
- poj1463 二分图匹配的最小点覆盖
- hdu1150 二分图匹配的最小点覆盖
- UVA 11419 SAM I AM 二分匹配最小覆盖点
- uva11419 【最大二分匹配求最小点覆盖 匈牙利算法】
- 整理docker及Hadoop脚本(三)-实现一键式命令行远程安装docker集群
- linux、unix下创建、删除表空间
- Java线程池使用与原理
- JAVA实现Web服务端程序
- 优美的js代码,拿去玩~
- uva 10615 二分图匹配 每个点上的不同边必须染上不同颜色 求最小染色数
- 深入理解MVC设计模式和三层架构_20170925_V1.0
- LeetCode 32. Longest Valid Parentheses
- 有哪些重要的思维方式让人受益匪浅
- hibernate分页机制包含scanner手动输入页码数
- Unity3d鼠标经过物体时变颜色,离开时恢复
- Java9学习(1):Java9安装与开发工具选择
- Docker常用命令原理图
- vs2013调用ffmpeg(不可调试)