cogs 2620. [HEOI2012]朋友圈
/*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]朋友圈相关推荐
- 解题报告:luogu P2423 [HEOI2012]朋友圈【最大团转最大点独立集(匈牙利算法+时间戳优化)】
图的最大团:"任意两点之间都有一条边相连"的子图被称为无向图的团,点数最多的团为图的最大团 朋友圈中任意两个点之间都有关系,既是图中的团. 答案就是图中的最大团. 我们如果把B国的 ...
- 【BZOJ 2744 】[HEOI2012]朋友圈
Description 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着.一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最 ...
- bzoj2744[HEOI2012]朋友圈
题目链接:bzoj2744 题目大意: 两个国家看成是AB两国,现在是两个国家的描述: 1.A国:每个人都有一个友善值,当两个A国人的友善值a.b,如果a xor b mod 2=1,那么这两个人都是 ...
- [HEOI2012] 朋友圈(最大团 + 结论 + 二分图 + 网络流)
problem luogu-P2423 solution 本题即求无向图最大团问题.这是个 NP hard\text{NP hard}NP hard 问题,所以必须从图的特殊性质出发,否则只能暴搜. ...
- luogu P2423 [HEOI2012]朋友圈 (最大团)
在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着. 一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最大数目.两个国家看成是 ...
- BZOJ 2744: [HEOI2012]朋友圈
传送门 解题思路 直接跑最大团洛谷上能得70分,惊了.说说正解,首先A国的必须xor后mod2余1,就相当于两个人必须是1奇1偶,所以A国的人只能选0,1,2个,我们可以暴力枚举选谁.继续考虑B国,现 ...
- HEOI2012 朋友圈
这是做的最得意的一道题,当时在考场上得了90,是因为数据中A有100++的情况,Runtime_error了.. 首先强调,本人不是用二分图,或者说不用图论算法,只涉及简单的枚举和记忆化思想. A国的 ...
- BZOJ2744洛谷P2423P2423 [HEOI2012]朋友圈
自从有了课件,我就不想打字了 代码(交在BZOJ的时候记得把组数删掉) //By AcerMo%%%尹兄 #include<cmath> #include<cstdio> #i ...
- 【BZOJ】【LYDSY】【大视野】2744(【HEOI2012】)朋友圈
Description 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着.一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最 ...
最新文章
- WEB页面多语言支持解决方案(转自CSDN)
- 关于分布式系统的数据一致性问题(三)
- Linux下网络socket编程——实现服务器(select)与多个客户端通信
- 应用服务器——tomcat架构分析
- 如何在linux里面运行ncl,NCL基础讲解(二)——NCL安装与运行
- 在页游中LUA的应用(1)
- 年龄到底怎么算才对_如意甘霖vs嘉和保,到底谁才是最佳男性重疾险
- C语言——迭代法求a的平方根——更新01
- http库cookiejar模块
- 头条和百度“大打出手”时,微信搜索去哪儿了?
- ts定义数组类型_TS的对象类型、数组类型、函数类型
- (整理)C/C++野指针
- Django 官方文档中文3.2 4.0
- 纯css实现icon的网站,代码可复制
- 图片大小太大,如何快速压缩?
- 注册Office教育版账号流程实现oneDrive1TB储存
- LeetCode 2389. 和有限的最长子序列
- IE6中float元素双倍margin问题
- 模型实践| CLIP 模型
- QT5 隐藏系统标题栏,自己编写个性靓丽标题栏