hdu 3829 Cat VS Dog 最大点独立集
来源:互联网 发布:淘宝联盟5.2苹果版本 编辑:程序博客网 时间:2024/05/19 18:12
可以想到是个二分图,x节点是喜欢狗的,y节点是喜欢猫的,在有冲突的节点间连边(x节点间不会有冲突,y节点间不会有冲突,所以是二分图),即若x[ i ]喜欢的是y[ j ]讨厌的,或x[ i ]讨厌的是y[ j ]喜欢的,那么g[ i ][ j ] = g[ j ][ i ] = 1,则该二分图的最大点独立集除以2就是所求,除以2的原因是求了两次。
#include <stdio.h>#include <string.h>#define maxn 510int nx,ny;int g[maxn][maxn],ans,sx[maxn],sy[maxn];int cx[maxn],cy[maxn];int path(int u){ sx[u]=1; int v; for(v=1;v<=ny;v++) { if(g[u][v]>0&&!sy[v]) { sy[v]=1; if(!cy[v]||path(cy[v])) { cx[u]=v;cy[v]=u; return 1; } } } return 0;}void solve(){ ans=0; int i; memset(cx,0,sizeof(cx)); memset(cy,0,sizeof(cy)); for(i=1;i<=nx;i++) { if(!cx[i]) { memset(sx,0,sizeof(sx)); memset(sy,0,sizeof(sy)); ans+=path(i); } }}struct Node{ int l; int d;}node[maxn];int main(){ int i,j; int n;//cat int m;//dog int p; while(scanf("%d%d%d",&n,&m,&p)!=EOF) { memset(g,0,sizeof(g)); char d; int id; for(i=1;i<=p;i++) { getchar(); scanf("%c%d",&d,&id); if(d=='D') node[i].l=id; else if(d=='C') node[i].l=m+id; getchar(); scanf("%c%d",&d,&id); if(d=='D') node[i].d=id; else if(d=='C') node[i].d=m+id; } for(i=1;i<=p;i++) for(j=1;j<=p;j++) { if(i==j) continue; if(node[i].l==node[j].d||node[i].d==node[j].l) g[i][j]=g[j][i]=1; } nx=ny=p; solve(); printf("%d\n",(2*p-ans)/2); } return 0;}
0 0
- HDU 3829 Cat VS Dog (最大独立点集)
- hdu 3829 Cat VS Dog 最大点独立集
- HDU--3829--Cat VS Dog【最大点独立集】
- HDU 3829 Cat VS Dog 最大独立集(最大匹配)
- HDU 3829 Cat VS Dog(最大独立集)
- HDU 3829 Cat VS Dog(二分图最大独立集)
- HDU 3829 — Cat VS Dog 最大独立集
- hdu 3829 Cat VS Dog【最大独立集】
- HDU 3829 Cat VS Dog(二分图最大独立集)
- hdu 3829 Cat VS Dog(最大独立集)
- HDU-3829 Cat VS Dog(最大独立集)
- hdu 3829 Cat VS Dog(最大独立集)
- HDU 3829 Cat VS Dog(最大独立集)
- ★hdu 3829 Cat VS Dog (最大独立集)
- HDU 3829 Cat VS Dog(二分图最大独立集)
- HDU 3829 Cat VS Dog (反建法求最大独立集)
- HDU 3829 Cat VS Dog-二分匹配&最大点集
- hdu 2768 Cat vs. Dog(二分图最大匹配--最大独立点集)
- 计算机应用是研究计算机应用于各个领域的理论
- 4月15日 训练
- sql server 异地备份与删除
- view的几种布局方式
- Android AIDL
- hdu 3829 Cat VS Dog 最大点独立集
- C语言scanf函数
- android开发--动态设置键盘弹出与view的交互样式
- UVA 20002 Partitioning by Palindromes(简单DP)
- 2014年4月17日,CSDN博客终于开张啦~
- WIN32界面开发之三:DUI雏形开发(二)
- 罗援之父罗青长逝世 周恩来临终时对其委以重任
- 题目1513:二进制中1的个数
- AudioFlinger系统之Audio 模块的加载(一)