/*70分 被卡T*/
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[210],b[3010],na,nb,m,head[3010],num;
int T1,T2,ban[3010],Link[3010],vis[3010],tim[3010],T;
bool map[210][3010];
struct node{int to,pre;}e[1000010];
void Insert(int from,int to){e[++num].to=to;e[num].pre=head[from];head[from]=num;
}
int count(int x){int res=0;while(x){res+=x&1;x>>=1;}return res;
}
bool find(int x){if(ban[x]==T1)return 0;for(int i=head[x];i;i=e[i].pre){int to=e[i].to;if((ban[to]!=T1)&&(vis[to]!=T2)){vis[to]=T2;if(tim[to]!=T1||!Link[to]||find(Link[to])){tim[to]=T1;Link[to]=x;return 1;}}}return 0;
}
int mis(int x=0,int y=0){T1++;int res=0;for(int i=1;i<=nb;i++)if(map[x][i]||map[y][i])ban[i]=T1,res++;for(int i=1;i<=nb;i++)if(b[i]&1){T2++;if(find(i))res++;}return nb-res;
}
int main(){freopen("friends.in","r",stdin);freopen("friends.out","w",stdout);scanf("%d",&T);while(T--){memset(map,1,sizeof(map));memset(head,0,sizeof(head));memset(Link,0,sizeof(Link));memset(ban,0,sizeof(ban));memset(tim,0,sizeof(tim));memset(vis,0,sizeof(vis));num=0;T1=0;T2=0;scanf("%d%d%d",&na,&nb,&m);for(int i=1;i<=na;i++)scanf("%d",&a[i]);for(int i=1;i<=nb;i++)scanf("%d",&b[i]);int x,y;for(int i=1;i<=m;i++){scanf("%d%d",&x,&y);map[x][y]=0;}for(int i=1;i<=nb;i++)for(int j=i;j<=nb;j++){if(((b[i]^b[j])%2==1)&&(count(b[i]|b[j])%2==0))Insert(i,j),Insert(j,i);}for(int i=1;i<=nb;i++)map[0][i]=0;int ans=mis();for(int i=1;i<=na;i++)ans=max(ans,mis(i)+1);for(int i=1;i<=na;i++)for(int j=1;j<=na;j++)if((a[i]^a[j])%2==1)ans=max(ans,mis(i,j)+1);printf("%d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/thmyl/p/8685704.html

cogs 2620. [HEOI2012]朋友圈相关推荐

  1. 解题报告:luogu P2423 [HEOI2012]朋友圈【最大团转最大点独立集(匈牙利算法+时间戳优化)】

    图的最大团:"任意两点之间都有一条边相连"的子图被称为无向图的团,点数最多的团为图的最大团 朋友圈中任意两个点之间都有关系,既是图中的团. 答案就是图中的最大团. 我们如果把B国的 ...

  2. 【BZOJ 2744 】[HEOI2012]朋友圈

    Description 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着.一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最 ...

  3. bzoj2744[HEOI2012]朋友圈

    题目链接:bzoj2744 题目大意: 两个国家看成是AB两国,现在是两个国家的描述: 1.A国:每个人都有一个友善值,当两个A国人的友善值a.b,如果a xor b mod 2=1,那么这两个人都是 ...

  4. [HEOI2012] 朋友圈(最大团 + 结论 + 二分图 + 网络流)

    problem luogu-P2423 solution 本题即求无向图最大团问题.这是个 NP hard\text{NP hard}NP hard 问题,所以必须从图的特殊性质出发,否则只能暴搜. ...

  5. luogu P2423 [HEOI2012]朋友圈 (最大团)

    在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着. 一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最大数目.两个国家看成是 ...

  6. BZOJ 2744: [HEOI2012]朋友圈

    传送门 解题思路 直接跑最大团洛谷上能得70分,惊了.说说正解,首先A国的必须xor后mod2余1,就相当于两个人必须是1奇1偶,所以A国的人只能选0,1,2个,我们可以暴力枚举选谁.继续考虑B国,现 ...

  7. HEOI2012 朋友圈

    这是做的最得意的一道题,当时在考场上得了90,是因为数据中A有100++的情况,Runtime_error了.. 首先强调,本人不是用二分图,或者说不用图论算法,只涉及简单的枚举和记忆化思想. A国的 ...

  8. BZOJ2744洛谷P2423P2423 [HEOI2012]朋友圈

    自从有了课件,我就不想打字了 代码(交在BZOJ的时候记得把组数删掉) //By AcerMo%%%尹兄 #include<cmath> #include<cstdio> #i ...

  9. 【BZOJ】【LYDSY】【大视野】2744(【HEOI2012】)朋友圈

    Description 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着.一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最 ...

最新文章

  1. WEB页面多语言支持解决方案(转自CSDN)
  2. 关于分布式系统的数据一致性问题(三)
  3. Linux下网络socket编程——实现服务器(select)与多个客户端通信
  4. 应用服务器——tomcat架构分析
  5. 如何在linux里面运行ncl,NCL基础讲解(二)——NCL安装与运行
  6. 在页游中LUA的应用(1)
  7. 年龄到底怎么算才对_如意甘霖vs嘉和保,到底谁才是最佳男性重疾险
  8. C语言——迭代法求a的平方根——更新01
  9. http库cookiejar模块
  10. 头条和百度“大打出手”时,微信搜索去哪儿了?
  11. ts定义数组类型_TS的对象类型、数组类型、函数类型
  12. (整理)C/C++野指针
  13. Django 官方文档中文3.2 4.0
  14. 纯css实现icon的网站,代码可复制
  15. 图片大小太大,如何快速压缩?
  16. 注册Office教育版账号流程实现oneDrive1TB储存
  17. LeetCode 2389. 和有限的最长子序列
  18. IE6中float元素双倍margin问题
  19. 模型实践| CLIP 模型
  20. QT5 隐藏系统标题栏,自己编写个性靓丽标题栏

热门文章

  1. AGC018F. Two Trees
  2. mxnet系列 安装
  3. Dubbo实战快速入门 (转)
  4. SilverLight:布局(3)StackPanel 对象
  5. 博客园的“随笔、文章、新闻、日记”有啥区别
  6. WCF创建Rest服务(附:.net2.0创建Rest服务)
  7. 浅谈一下js中的this
  8. jQuery学习(六)—jQuery对象的创建
  9. 移动开发—Less基础与安装
  10. python数据分析环境搭建_教你零搭建Python数据分析环境