cogs 2620. [HEOI2012]朋友圈
/*70分 被卡T*/
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[],b[],na,nb,m,head[],num;
int T1,T2,ban[],Link[],vis[],tim[],T;
bool map[][];
struct node{int to,pre;}e[];
void Insert(int from,int to){
e[++num].to=to;
e[num].pre=head[from];
head[from]=num;
}
int count(int x){
int res=;
while(x){
res+=x&;
x>>=;
}
return res;
}
bool find(int x){
if(ban[x]==T1)return ;
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 ;
}
}
}
return ;
}
int mis(int x=,int y=){
T1++;int res=;
for(int i=;i<=nb;i++)
if(map[x][i]||map[y][i])ban[i]=T1,res++;
for(int i=;i<=nb;i++)
if(b[i]&){
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,,sizeof(map));
memset(head,,sizeof(head));
memset(Link,,sizeof(Link));
memset(ban,,sizeof(ban));
memset(tim,,sizeof(tim));
memset(vis,,sizeof(vis));
num=;T1=;T2=;
scanf("%d%d%d",&na,&nb,&m);
for(int i=;i<=na;i++)scanf("%d",&a[i]);
for(int i=;i<=nb;i++)scanf("%d",&b[i]);
int x,y;
for(int i=;i<=m;i++){
scanf("%d%d",&x,&y);
map[x][y]=;
}
for(int i=;i<=nb;i++)
for(int j=i;j<=nb;j++){
if(((b[i]^b[j])%==)&&(count(b[i]|b[j])%==))
Insert(i,j),Insert(j,i);
}
for(int i=;i<=nb;i++)map[][i]=;
int ans=mis();
for(int i=;i<=na;i++)ans=max(ans,mis(i)+);
for(int i=;i<=na;i++)
for(int j=;j<=na;j++)
if((a[i]^a[j])%==)ans=max(ans,mis(i,j)+);
printf("%d\n",ans);
}
return ;
}
cogs 2620. [HEOI2012]朋友圈的更多相关文章
- bzoj 2744: [HEOI2012]朋友圈 二分图匹配
2744: [HEOI2012]朋友圈 Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 612 Solved: 174[Submit][Status] ...
- 【BZOJ 2744】 2744: [HEOI2012]朋友圈 (最大团,二分图匹配,构图)
2744: [HEOI2012]朋友圈 Description 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着.一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他 ...
- 【BZOJ 2744 】[HEOI2012]朋友圈
Description 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着.一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最 ...
- BZOJ2744:[HEOI2012]朋友圈(最大团,乱搞)
Description 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着.一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最 ...
- 【刷题】BZOJ 2744 [HEOI2012]朋友圈
Description 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着.一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最 ...
- luogu P2423 [HEOI2012]朋友圈 (最大团)
在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着. 一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最大数目.两个国家看成是 ...
- 【二分图】HEOI2012 朋友圈
题目内容 洛谷链接 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着. 一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最大 ...
- [HEOI2012]朋友圈
题目 我们发现我们要求的是一个最大团问题,众所周知这是一个\(NP\)难问题,除了爆搜没有什么别的方法,但是这道题我们可以根据图的特殊性质入手 我们如果把\(B\)国的人分成奇数和偶数两类,就会发现奇 ...
- bzoj 2744: [HEOI2012]朋友圈
#include<cstdio> #include<iostream> #define M 3010 using namespace std; ],u[M*M>>] ...
随机推荐
- 数据库+maven
1.mysql <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-ja ...
- C语言链表结构体(学习笔记)
#include <stdio.h> #define LENTEST 100 // 采取逐步删除的方法求的素数 //先假设1-100都是素数,然后剔除2的倍数, //3的倍数,直到剔除所有 ...
- hdu 1503 Advanced Fruits(最长公共子序列)
Advanced Fruits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- 使用IDEA创建一个springboot项目
工欲善其事,必先利其器. 不难发现,还是有很多小朋友在使用eclipse开发java项目.当你接触IDEA后,一切都变得美好了. 使用IDEA创建一个springboot项目是一件极其简单的事情.界面 ...
- Java微信小程序开发_00_资源帖
1.微信小程序开发:http://blog.csdn.net/column/details/13721.html?&page=1 2.微信小程序栏目:http://blog.csdn.net/ ...
- Android中高效的显示图片之三——缓存图片
加载一张图片到UI相对比较简单,如果一次要加载一组图片,就会变得麻烦很多.像ListView,GridView,ViewPager等控件,需要显示的图片和将要显示的图片数量可能会很大. 为了减少内存使 ...
- CCUserDefault 存档
void HelloWorld::testCCUserDefault() { CCSize size = CCDirector::sharedDirector()->getWinSize(); ...
- 使用Visual Studio进行单元测试-Part1
写在开头:Coding ain't done until all the tests run. No unit test no BB. -------------------------------- ...
- 洛谷【P1138】第k小整数
题目传送门:https://www.luogu.org/problemnew/show/P1138 桶排: 对于值域在可以接受的范围内时,我们可以用不依赖比较的桶排去将数据排序.因为桶排不依赖比较排序 ...
- centos下升级mysql5.5.47到5.7.14操作过程
一. 查看已安装Mysql基础信息通过mysql –V 查看下mysql版本可以通过命令find / -name mysql 得到下面信息 1.安装目录[root@jjxnhd-192-10 mysq ...