这题很好的运用了二分图补图的性质
二分图补图的两个 部分就是 两个最大团

因为是两个班的学生那么我们一定可以将图分成一个二分图
此题是找补图的二分匹配 因为补图的两个部分都是团 所以只要找到二分图的两个部分就好
若两个部分 有一个为奇数 那么 输出答案 n / 2
若两个都为奇数 那我们必须找到班与班之间 一组人匹配 其他的自己班里匹配

那我们染色法就好了

#include<iostream>
#include<vector>
#define endl "\n"using namespace std;const int N = 1e5 + 10,M = 4e5 + 10;vector<int>v[N];
void add(int a,int b){v[a].push_back(b);
}int cnt[5];
int col[N];
void dfs(int x){for(auto j : v[x]){if(!col[j]){col[j] = col[x] ^ 1;cnt[col[j]]++;dfs(j);}}
}int main(){int n,m;scanf("%d%d",&n,&m);for(int i = 1; i <= m; i++){int x,y;scanf("%d%d",&x,&y);add(x,y),add(y,x);}for(int i = 1; i <= n; i++){if(!col[i]){col[i] = 2;cnt[col[i]]++;dfs(i);}}if(cnt[2] % 2 == 0 || cnt[3] % 2 == 0){cout << n / 2 << endl;}else{for(int i = 1; i <= n; i++){if(v[i].size() != cnt[col[i] ^ 1]){cout << n / 2 << endl;return 0;}}cout << n / 2 - 1 << endl;}return 0;
}

2021年度训练联盟热身训练赛第五场 F Group Project相关推荐

  1. 2021年度训练联盟热身训练赛第四场 H - Rock Paper Scissors(字符串匹配,FFT)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 2021年度训练联盟热身训练赛第四场 H - Rock Paper Scissors(字符串匹配,FF ...

  2. 2021年度训练联盟热身训练赛第五场

    2021年度训练联盟热身训练赛第五场 链接:https://ac.nowcoder.com/acm/contest/13926 A Binary Seating #include<bits/st ...

  3. 2021年度训练联盟热身训练赛第八场

    目录 2021年度训练联盟热身训练赛第八场 A-Fire on Field 题意 思路 代码 B-Gene Tree 题意 思路 代码 I-Thread Knots 题意 思路 代码 J-Triang ...

  4. 2021年度训练联盟热身训练赛第三场赛后补题

    2021年度训练联盟热身训练赛第三场赛后补题 A Circuit Math [题目分析] [代码展示] B Diagonal Cut [题目分析] [代码展示] C Gerrymandering [题 ...

  5. 2021年度训练联盟热身训练赛第三场(待补)

    文章目录 前言 一.Circuit Math(后缀表达式---栈&&fgets) 二.Diagonal Cut(gcd最大公因数,数论) 三.expected primary-expr ...

  6. 2021年度训练联盟热身训练赛第二场(全)

    传送门 怎么说呢,这次的训练赛的题目难度不是很大,但就是字多 A Binarize It Professor Boolando can only think in binary, or more sp ...

  7. 【2021年度训练联盟热身训练赛第五场】Jam-packed

    import math as ma if __name__=="__main__":n,m = map(int,input().split())if n < m:

  8. 【2021年度训练联盟热身训练赛第四场】Game Map(python C++)

    #include <bits/stdc++.h> #include <vector> #define ll long long using namespace std; int ...

  9. 【2021年度训练联盟热身训练赛第四场】Happy Number(python)

    import math import cmath import sys import string import heapq import bisect import copy from queue ...

最新文章

  1. 《Android应用开发攻略》——1.3 从命令行创建 “Hello, World”应用程序
  2. linux用户及用户组管理
  3. MySQL高性能优化规范建议
  4. python编程书籍1020python编程书籍_代写INFT 1020作业、Database作业代做、Java课程作业代写、c++,Python编程作业代做...
  5. java8 升级_java8升级
  6. jQuery plugin 开发的一个例子
  7. oracle对查询结果求和_oracle基础知识分享
  8. 组策略 之 恢复默认组策略对象命令
  9. db2中null和空值的区别_MySQL数据库的表中 NULL和空值 到底有什么区别呢?
  10. 高性能 TCP amp; UDP 通信框架 HP-Socket v3.2.3 正式宣布
  11. 拼多多的硬核逆生长!
  12. CSharp_DevExpress_DXperience_Universal_11.1.6 下载+源码+编译
  13. 详解netty原理分析
  14. R2统计学正确计算方法
  15. 运行Python代码片段
  16. hui后台框架html页面中的图标,HUI
  17. DB buffer bussy wait 分析一例
  18. 使用代理爬去微信公众号_微信公众号怎么去推广运营?企业微信公众号要如何运营?微信公众号运营技巧,你get了吗?微信怎么去推广运营?...
  19. 判断当前Windows XP操作系统是32位还是64位的方法
  20. 快速了解机器视觉(CV)基础知识

热门文章

  1. 个人上传:吴恩达课后作业第四周-搭建深层神经网络(英文)
  2. 对视图的对角线切割DiagonalView
  3. 亚马逊云科技 Build On 2022 - 参加一场动手实验是怎样一种体验?
  4. 小程序 · Animation——淡入淡出动画效果
  5. 有关计算机应用基础课程讨论,计算机应用基础课程教学探讨
  6. Java真假金币_2018年熊猫金币如何辨别真假?
  7. Consider defining a bean of type
  8. c语言检索课题报告,文献检索实验报告(一)范文 - 图文
  9. [码]从游戏中学编程
  10. CentOS7上安装稻壳CMS