给你一个二分图 问你最大团为多大

解一:状压DP

解二:二分图最大匹配

二分图的最大团=补图的最大独立集

二分图最大独立集=二分图定点个数-最大匹配

//Hungary
#include<bits/stdc++.h>
using namespace std;
#define N 50
int useif[N]; //记录y中节点是否使用 0表示没有访问过,1为访问过
int link[N]; //记录当前与y节点相连的x的节点
int mat[N][N]; //记录连接x和y的边,如果i和j之间有边则为1,否则为0
int gn, gm; //二分图中x和y中点的数目
int can(int t) {
int i;
for (i = ; i <= gm; i++) {
if (useif[i] == && mat[t][i]) {
useif[i] = ;
if (link[i] == - || can(link[i])) {
link[i] = t;
return ;
}
}
}
return ;
}
int MaxMatch() {
int i, num;
num = ;
memset(link, 0xff, sizeof(link));
for (i = ; i <= gn; i++) {
memset(useif, , sizeof(useif));
if (can(i)) {
num++;
}
}
return num;
}
int main() {
int TCASE;
scanf("%d", &TCASE);
while (TCASE--) {
int n, k;
int u, v;
scanf("%d %d", &n, &k);
gn = gm = n;
memset(mat, , sizeof(mat));
for (int i = ; i <= k; i++) {
scanf("%d %d", &u, &v);
mat[u][v] = ;
}
for (int i = ; i <= n; i++) {
for (int j = ; j <= n; j++) {
mat[i][j] = mat[i][j] ^ ;
}
}
int ans = n * ;
ans -= MaxMatch();
printf("%d\n", ans);
}
}

最新文章

  1. 学习日记-从爬虫到接口到APP
  2. K-Means聚类算法原理
  3. C#对象克隆介绍
  4. 编译安装的 mysql apache 用 service mysqld start 来启动
  5. html5中上传图片
  6. php怎么解析utf-8带BOM编码的json数据,php解析json数据返回NULL
  7. Android开发之定义app在手机的安装位置
  8. UI产品设计流程中的14个要点
  9. JavaEE中的MVC(三)定制Struts——命令模式
  10. UILabel 的使用
  11. Linux下进程间通信--共享内存:最快的进程间通信方式
  12. C算法分解质因数与分解因子
  13. python中的面相对象
  14. js 模拟call、apply、bind实现
  15. 介绍Python中6个序列的内置类型
  16. C# List&lt;string&gt;和ArrayList用指定的分隔符分隔成字符串
  17. .NET Core 玩一玩 Ocelot API网关
  18. iOS 推送功能打包后获取不到deviceToken
  19. 欢迎来怼---作业要求 20171015 beta冲刺贡献分分配规则
  20. 【第一章】MySQL数据概述

热门文章

  1. springboot整合mybatis时java.sql.SQLException: The server time zone value &#39;&#214;&#208;&#185;&#250;&#177;&#234;&#215;&#188;&#202;&#177;&#188;&#228;&#39; is unrecognized or represents more than one time zone.
  2. Web Service简介与开发实例
  3. sftp服务器配置
  4. HttpClient常用方法总结
  5. Series与list
  6. python_线程读写操作&lt;一&gt;
  7. unittest之三:字符串与列表的相互转换与分离数据时的应用
  8. Windows 窗体消息大全(速查)
  9. 公司PL/SQL考核及小结
  10. Mysql学习(二)之安装、开启自启、启动、重启、停止