Cat vs. Dog
来源:互联网 发布:微测试源码 编辑:程序博客网 时间:2024/05/20 22:40
Cat vs. Dog
解法:最大独立集=顶点数 - 最大匹配。有矛盾的连上一条边,然后我是跑了一遍匈牙利求最大匹配
#include <iostream>using namespace std;#include <stdio.h>#include <string>#include <cstring>string a[600][2];bool flag[510];int n, m, c, d, data[510][510], f[510], ans;bool find(int x) { for(int i = 1; i <= n; i++) { if (data[x][i] == 1 && !flag[i]) { flag[i] = true; if (f[i] == 0 || find(f[i])) { f[i] = x; f[x] = i; return true; } } } return false;}int main() { int tt; cin >> tt; while (tt--) { cin >> c >> d >> n; for (int i = 1; i <= n; i++) { cin >> a[i][0]; cin >> a[i][1]; } memset(data, 0, sizeof(data)); memset(f, 0, sizeof(f)); for (int i = 1; i <= n; i++) for (int j = i+1; j <= n; j++) { if (a[i][0] == a[j][1] || a[i][1] == a[j][0]) { data[i][j] = 1; data[j][i] = 1; } } ans = 0; for (int i = 1; i <= n; i++) if (f[i] == 0) { memset(flag, 0, sizeof(flag)); if (find(i)) ans++; } cout << n-ans << endl; }}
0 0
- Cat VS Dog
- Cat VS Dog
- Cat vs. Dog
- HDU2768 Cat vs. Dog
- HDU3829-Cat VS Dog
- Cat VS Dog HDU
- HDU3829 Cat VS Dog
- HDU 2768 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
- NOJ [1305] Cat VS Dog
- HDU 3829 Cat VS Dog
- HDU-3829 Cat VS Dog
- UVALive 4288 Cat vs. Dog
- HDU 3829 Cat VS Dog
- Spring定时框架Quartz的使用
- 用虚幻4开发搭积木的VR游戏
- 仿手机QQ下拉菜单框架(FFDropDownMenu) -- 基本使用
- hibernate中当Teacher与Student具有多对多的关系时,且使用关联关系,没有实体的中间表,如何使用hql根据student的名字取出拥有他的teacher
- Qt之程序打包(使用windeployqt.exe查找依赖库)
- Cat vs. Dog
- 架构的本质
- 主键和唯一索引的区别
- 09 为什么要有内部类?匿名内部类表现形式由来?
- 310. Minimum Height Trees
- 主键、唯一键与唯一索引的区别
- 文件属性
- Matchsticks
- OFBIZ 网站或店铺视觉主题(visual Theme)设计