Strategic Game--hdu1054
2015-08-13 09:09
148 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1054
求最小覆盖点,也就是求最大匹配,要用邻接表写,不然会TLE;当然也可以用HK算法;
View Code
求最小覆盖点,也就是求最大匹配,要用邻接表写,不然会TLE;当然也可以用HK算法;
#include<stdio.h> #include<string.h> #include<queue> #include<algorithm> using namespace std; #define N 1510 int vis , head , cnt, used , maps , n, ans; struct Edge { int v, next; } Edge[N*4];///要开大一点,我在这TLE了一次 void Add(int u, int v) { Edge[cnt].v = v; Edge[cnt].next = head[u]; head[u] = cnt++; } bool Find(int u) { for(int j=head[u]; j!=-1; j=Edge[j].next) { int v = Edge[j].v; if(!vis[v]) { vis[v] = 1; if(!used[v] || Find(used[v])) { used[v] = u; return true; } } } return false; } int main() { int a, b, m; while(scanf("%d", &n)!=EOF) { cnt = 0; memset(head, -1, sizeof(head)); for(int i=0; i<n; i++) { scanf("%d:(%d)", &a, &m); while(m--) { scanf("%d", &b); Add(a, b); Add(b, a); } } ans = 0; memset(used, 0, sizeof(used)); for(int i=0; i<n; i++) { memset(vis, 0, sizeof(vis)); if(Find(i)) ans++; } printf("%d\n", ans/2); } return 0; }
View Code
相关文章推荐
- Oracle为什么要“重振”存储?
- JQuery的一些笔记
- 在UIView中添加应用下载信息模块
- mac 系统通用快捷键(mac 下的应用多数会往这些标准看齐)(转:http://yang3wei.github.io/blog/2013/02/08/chen-ni-yu-mac-chen-ni-yu-xcode/)
- POJ-2251 Dungeon Master (BFS模板题)
- 1751 Highways【最小生成树】
- DRBD的简单应用
- HDU 1176 免费馅饼(树塔问题的简单变形)
- 学习总结5
- 装饰模式---结构性
- 数据结构之二叉树详解
- win7默认网关不可用怎么解决
- POJ 3356(最短编辑距离问题)
- 深入浅出 RPC
- 深入浅出 RPC
- iOS开发之使用Storyboard预览UI在不同屏幕上的运行效果
- IBAction:IBOutlet:注意事项
- 循环打印矩阵
- 一致性hash算法在memcached中的使用
- 感谢下载管理系统给我们的服务