L - Cat VS Dog - HDU 3829(最大独立集)
#include<stdio.h>
#include<string.h>
#include<queue>
#include<vector>
using namespace std; const int MAXN = ;
const int oo = 1e9+; struct Animal{int like, hate;}Lcat[MAXN], Ldog[MAXN]; bool G[MAXN][MAXN], used[MAXN];
int Ly[MAXN]; bool Find(int i, int N)
{
for(int j=; j<=N; j++)
{
if(G[i][j] && used[j] == false)
{
used[j] = true;
if(!Ly[j] || Find(Ly[j], N))
{
Ly[j] = i;
return true;
}
}
} return false;
} int main()
{
int M, N, P; while(scanf("%d%d%d", &N, &M, &P) != EOF)
{
int i, j, u, v, cn=, dn=;
char ch1, ch2; memset(G, false, sizeof(G));
memset(Ly, false, sizeof(Ly)); for(i=; i<=P; i++)
{
scanf(" ");
scanf("%c%d %c%d", &ch1, &u, &ch2, &v); if(ch1 == 'C')
{///喜欢猫u,不喜欢狗v
Lcat[++cn].like = u;
Lcat[cn].hate = v;
}
else
{///喜欢狗u,不喜欢猫v
Ldog[++dn].like = u;
Ldog[dn].hate = v;
}
} for(i=; i<=cn; i++)
for(j=; j<=dn; j++)
{///如果喜欢猫A的小孩发现不喜欢猫A的小孩,
///或者不喜欢狗A的小孩发现喜欢狗A的,都是排斥关系
if( Lcat[i].like == Ldog[j].hate || Lcat[i].hate == Ldog[j].like )
G[i][j] = true;
} int ans = ; for(i=; i<=cn; i++)
{
memset(used, false, sizeof(used));
if( Find(i, dn) == true )
ans ++;
} printf("%d\n", P-ans);
} return ; }
L - Cat VS Dog - HDU 3829(最大独立集)的更多相关文章
- Cat VS Dog HDU - 3829 (最大独立集 )
Cat VS Dog Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/Others)Total ...
- Cat VS Dog HDU_3829(最大独立集最大匹配)
Cat VS Dog 题意:一群小朋友去动物园,如果每个小朋友喜欢的动物是猫,那么不喜欢的动物一定是狗,反之也是.现在动物园的管理者要拿走一些动物,如果拿走的是某个小朋友不喜欢的动物,那这个小朋友就非 ...
- HDU 3829 - Cat VS Dog (二分图最大独立集)
题意:动物园有n只猫和m条狗,现在有p个小孩,他们有的喜欢猫,有的喜欢狗,其中喜欢猫的一定不喜欢狗,喜欢狗的一定不喜欢猫.现在管理员要从动物园中移除一些动物,如果一个小孩喜欢的动物留了下来而不喜欢的动 ...
- HDU 3829——Cat VS Dog——————【最大独立集】
Cat VS Dog Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit S ...
- HDU 3829 Cat VS Dog / NBUT 1305 Cat VS Dog(二分图最大匹配)
HDU 3829 Cat VS Dog / NBUT 1305 Cat VS Dog(二分图最大匹配) Description The zoo have N cats and M dogs, toda ...
- (hdu step 6.3.7)Cat vs. Dog(当施工方规则:建边当观众和其他观众最喜爱的东西冲突,求最大独立集)
称号: Cat vs. Dog Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...
- hdu 3829 Cat VS Dog 二分图匹配 最大点独立集
Cat VS Dog Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/Others) Prob ...
- HDU 3289 Cat VS Dog (二分匹配 求 最大独立集)
题意:每个人有喜欢的猫和不喜欢的狗.留下他喜欢的猫他就高心,否则不高心.问最后最多有几个人高心. 思路:二分图求最大匹配 #include<cstdio> #include<cstr ...
- hdu 2768 Cat vs. Dog (二分匹配)
Cat vs. Dog Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
随机推荐
- vedeo与audio标签的使用
浏览器原生支持音视频无疑是一件大事——尤其对移动设备而言.不依赖Flash,意味着更加省电.安全和快速的播放体验,而且只需要引入一个标签,就能播放自如. <video src="dao ...
- Memcached报错
1. ERROR Memcached.ClientLibrary.SockIOPool [(.6271ms 解决办法:据说是因为定期清理应用池的原因.
- 关于IO学习的几个函数
这是最近学到的几个关于IO文件操作的几个小算法,今天总结出来. 1. 删除一个给定的目录,这上目录不为空目录,使用递归来实现 public void test04(File file) { File[ ...
- 解决 iOS View Controller Push/Pop 时的黑影
那么如何解决这个问题呢? 实际上很简单,如果这个 ViewController 是在 TabBarViewController 的 NavigationController 上 Push/Pop 的, ...
- java_annotation_02
通过反射取得Annotation 在一上节中,我们只是简单的创建了Annotation,如果要让一个Annotation起作用,则必须结合反射机制,在Class类上存在以下几种于Annotation有 ...
- 【USACO 1.5.4】跳棋的挑战
[问题描述] 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行,每列,每条对角线(包括两条主对角线的所有对角线)上都至多有一个棋子,如下例,就是一种正确的布局. 上面的布局可以用 ...
- Linux 查看文件内容的命令
转载自:新浪博客 (观看档案内容 : cat, tac, more, less, head, tail, nl, 刚刚我们提到的都只是在于显示档案的外观,或者是移动与复制一个档案或目录而已,那么如果我 ...
- 关于一个注册邮箱的demo
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- 07:打印ASCII码
总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个除空格以外的可见字符(保证在函数scanf中可使用格式说明符%c读入),输出其ASCII码. 输入 一个除空格以外的可见字符. ...
- [异常解决] Make nRF51 DFU Project Appear "fatal error: uECC.h: No such file or directory"
What's the problem When I make the nRF51's DFU project appear "no uECC.h" error: And then ...