poj1469 二分图匹配(匈牙利算法)
2016-07-13 23:08
495 查看
poj1469 course
code:
code:
#include<cstdio> #include<cstring> using namespace std; #define P 110 #define N 310 int map[P] ; int match ; bool use ; int p, n; bool find(int u) //u是课程 { for(int i = 1; i <= n; ++i) { if(!use[i] && map[u][i]) //标记匹配的学生 { use[i] = true; if(match[i] == - 1 || find(match[i])) { match[i] = u; return true; } } } return false; } int sum() { int sumall = 0; for(int i = 1; i <= p; ++i) //统计匹配的课程 { memset(use, false, sizeof(use)); if(find(i)) sumall++; } return sumall; } int main() { int ncase; int stunum, temp, ans; scanf("%d", &ncase); while(ncase--) { memset(map, 0, sizeof(map)); memset(match, -1, sizeof(match)); scanf("%d%d", &p, &n); for(int i = 1; i <= p; ++i) { scanf("%d", &stunum); for(int j = 1; j <= stunum; ++j) { scanf("%d", &temp); map[i][temp] = 1; //j号学生喜欢i号课程 } } ans = sum(); printf("%s\n", ans == p ? "YES" : "NO"); } return 0; }
相关文章推荐
- [android] 天气app布局练习
- 331. Verify Preorder Serialization of a Binary Tree
- React-native设置全局函数globle【适用于有组件嵌套时】
- 在源字符串中删除子字符串的函数
- C++ 11 : create all possible k combinations of n items
- java JTextArea 定位到指定行 选中某一行
- 过目不忘JS正则表达式(转)
- 超简单的ASP解密方法
- Android中JNI使用详解(3)---Android Studio中SO文件生成
- Spring MVC集成slf4j-logback
- Javascript学习笔记1
- tomcat和apache的结合 看最重要的 文档有点乱
- Discuz! X2.5 远程代码执行漏洞及EXP[XDAY]
- java简单实现复制 粘贴 剪切功能代码分享
- react教程地址
- UVA - 10061 How many zero's and how many digits ?
- 第一个工程3-代码解释一
- UVA - 375 Inscribed Circles and Isosceles Triangles
- web.xml配置servlet版本
- 在视觉上的卷积神经网络及应用知识