poj2724 Purifying Machine
来源:互联网 发布:高淇java 编辑:程序博客网 时间:2024/05/17 23:26
#include <iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<vector>#include<bitset>using namespace std;const int MAX=2050;int n,m,match[MAX],v;bool used[MAX];vector<int> g[MAX],a;char ch[MAX][15];void add_edge(int u,int v){ g[u].push_back(v); g[v].push_back(u);}bool dfs(int v){ used[v]=true; for(int i=0;i<g[v].size();i++) { int &u=g[v][i],w=match[u]; if(w<0||!used[w]&&dfs(w)) { match[u]=v; match[v]=u; return true; } } return false;}int matching(){ int ans=0; memset(match,-1,sizeof(match)); for(int i=0;i<v;i++) { if(match[i]<0) { memset(used,0,sizeof(used)); if(dfs(i)) ans++; } } return ans;}int main(){ while(scanf("%d%d",&n,&m),n||m) { for(int i=0;i<m;i++) { int num=0; scanf("%s",ch[i]); for(int j=0;j<n;j++) { if(ch[i][j]=='1') num+=(1<<(n-j-1)); } a.push_back(num); for(int j=0;j<n;j++) { if(ch[i][j]=='*') num+=(1<<(n-j-1)); } a.push_back(num); } sort(a.begin(),a.end()); a.erase(unique(a.begin(),a.end()),a.end()); v=a.size(); for(int i=0;i<=MAX;i++) g[i].clear(); for(int i=0;i<v;i++) { for(int j=i+1;j<v;j++) { bitset<32> differ=a[i]^a[j]; if(differ.count()==1) add_edge(i,j); } } printf("%d\n",v-matching()); } return 0;}此题的关键在于把相差一位的cheese连接起来,再通过求最大独立集得出答案
0 0
- poj2724 Purifying Machine
- poj2724 Purifying Machine
- 【poj2724】 Purifying Machine
- POJ2724 Purifying Machine(二分图)
- POJ2724 Purifying Machine二分图,最小边覆盖
- POJ2724 Purifying Machine【二分图最小边覆盖】
- 2724 Purifying Machine //MAXMATCH
- POJ 2724 Purifying Machine
- POJ-2724-Purifying Machine
- POJ 2724 Purifying Machine
- Purifying Machine UVA
- UVA 1663(p381)----Purifying Machine
- poj2724
- POJ2724
- poj 2724 Purifying Machine 二分匹配
- poj 2724 Purifying Machine 最小路径覆盖
- poj 2724 Purifying Machine (最小边覆盖)
- UVa 1663 - Purifying Machine(二分匹配)
- 递归实现字符串全排列
- 【转载】java 构造方法的继承
- C语言------数组和字符串
- 搜索引擎一:实现目标
- POJ 3613 Cow Relays (Floyd + 矩阵快速幂 + 离散化 神题!)
- poj2724 Purifying Machine
- 黑马程序员——java基础--编程思想
- Codechef Prime Distance On Tree(点分治+FFT)
- OC-内存管理-常见错误
- 计算分段函数
- 百度地图使用案例代码
- pat1077
- html旅程之输入域控件
- 黑马程序员——Map集合类与集合数组工具类及JDK1.5后的新特性