hdu3829 Cat VS Dog(二分最大独立集)
2015-08-06 09:49
134 查看
http://acm.hdu.edu.cn/showproblem.php?pid=3829
详解见:/article/2390668.html
写得很详细,很清楚
详解见:/article/2390668.html
写得很详细,很清楚
#include <iostream> #include <string.h> #include <map> #include <stdio.h> #include <math.h> #include <algorithm> #define INF 10000000 #define MAXN 505 using namespace std; int n,m,p; int line[MAXN]; char like[MAXN][5],dislike[MAXN][5]; bool mp[MAXN][MAXN],used[MAXN]; bool find(int a){ for(int i=0;i<p;i++) if(mp[a][i]&&!used[i]){ used[i]=1; if(line[i]==-1||find(line[i])){ line[i]=a; return true; } } return false; } int hungry(){ int sum=0; for(int i=0;i<p;i++) { memset(used,0,sizeof(used)); if(find(i)) sum++; } return sum; } int main(){ while(scanf("%d%d%d",&n,&m,&p)!=EOF){ for(int i=0;i<p;i++) scanf("%s%s",like[i],dislike[i]); memset(mp,0,sizeof(mp)); memset(line,-1,sizeof(line)); for(int i=0;i<p;i++) for(int j=0;j<p;j++) if(strcmp(like[i],dislike[j])==0||strcmp(dislike[i],like[j])==0) mp[i][j]=1; int temp=hungry(); printf("%d\n",p-temp/2); }//while return 0; }
相关文章推荐
- 论数学中的无穷
- 国内CVPR和图像处理领域的公司和研究机构
- 构造函数和复制控制成员
- android 通知栏如何更新图片、按钮
- 为什么在 Redis 实现 Lua 脚本事务?
- Grunt搭建前端开发环境
- php.ini
- 南邮 OJ 1589 开灯问题
- error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
- EditText getText()方法无效
- 1093:最大子序列
- js实现全选反选功能
- Same Tree
- github上面新建分支
- 悬崖勒马之三年编码的反省
- HBASE的java api简介
- hdoj.1297 Children’s Queue【大数+排列组合】 2015/08/06
- POJ 1114 Network
- HDU 1272 小希的迷宫
- hdu 5349 MZL's simple problem 2015多校联合训练赛#5 简单题