比赛 202110省实验桐柏一中普及组联赛 评测结果 AAAAAAAAAA
题目名称 分配同桌 最终得分 100
用户昵称 求索 运行时间 0.782 s
代码语言 C++ 内存使用 20.25 MiB
提交时间 2021-10-20 18:47:52
显示代码纯文本
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. bool mapp[10005][10005];
  5. int A[10005];
  6. int m,n;
  7. bool vis[10005];
  8. int ans;
  9.  
  10. bool dfs(int x){
  11. for(int i=m+1;i<=n;i++){
  12. if(mapp[x][i] && !vis[i]){
  13. vis[i]=1;
  14. if(!A[i] || dfs(A[i]) ){
  15. A[i]=x;
  16. return 1;
  17. }
  18. }
  19. }
  20. return 0;
  21. }
  22.  
  23. int main(){
  24. freopen("tongzhuo.in","r",stdin);
  25. freopen("tongzhuo.out","w",stdout);
  26. cin >> n >> m;
  27. int a,b;
  28. while(scanf("%d %d",&a,&b) == 2){
  29. mapp[a][b]=1;
  30. }
  31. for(int i=1;i<=m;i++){
  32. memset(vis,0,sizeof(vis));
  33. if(dfs(i)){
  34. ans++;
  35. }
  36. }
  37. cout << ans;
  38. return 0;
  39. }