二分图最大匹配模板 HDU1083

题目大意:

P个老师,N个学生,能否达到最大匹配P;

复制代码
 1 #include<bits/stdc++.h>
 2 #define pb push_back
 3 const int maxn = 300 + 5;
 4 using namespace std;
 5 int P,N;
 6 vector<int> G[maxn];
 7 int linker[maxn];
 8 bool used[maxn];
 9 bool dfs (int u) {
10     int now ;
11     for ( int v = 0 ; v < G[u].size() ; v ++ ){
12         now = G[u][v];
13         if(!used[now]){
14             used[now] = true ;
15             if( linker[now] == -1 || dfs(linker[now]) ){
16                 linker[now] = u;
17                 return true ;
18             }
19         }
20     }
21     return false;
22 }
23 int hungary(){
24     int res = 0;
25     memset( linker , -1 ,sizeof( linker ));
26     for ( int u = 1; u <= P ; u++) {
27          memset ( used , false ,sizeof (used )) ;
28          if( dfs(u)) res ++ ;
29     }
30     return res ;
31 }
32 int main () {
33     int T , tot , v ;
34     cin >> T;
35     while (T--) {
36         cin >> P >> N;
37         for ( int i = 1 ; i <= P ;i ++) {
38             cin >> tot ;
39             for ( int j = 1; j <= tot ; j++){
40                 cin >> v ;
41                 G[i].pb (v);
42             }
43         }
44         printf ( "%s\n" ,  hungary() == P ? "YES" : "NO" );
45         for ( int i = 1; i <= P ; i++ ) G[i].clear();
46     }
47     return 0;
48 }
复制代码

 

posted on   poler  阅读(157)  评论(0编辑  收藏  举报

编辑推荐:
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
阅读排行:
· 为什么AI教师难以实现
· 如何让低于1B参数的小型语言模型实现 100% 的准确率
· AI Agent爆火后,MCP协议为什么如此重要!
· 【译】Visual Studio(v17.13)中新的调试和分析特性
· Draw.io:你可能不知道的「白嫖级」图表绘制神器
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示