BZOJ [Scoi2010]游戏
2024-08-30 01:34:23
题解:
解法一:建立图论模型,发现只要联通块中有环则这个联通块中的值都可以被攻击到
如果是树,则只能攻击size-1个
解法二:二分图匹配,二分答案,看看是否能攻击到mid
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int u=10000; int n; int father[u+1];
int isinc[u+1];
int siz[u+1];
int Getf(int x){
if(father[x]==x)return x;
return father[x]=Getf(father[x]);
}
void Unionn(int x,int y){
int fx=Getf(x);
int fy=Getf(y);
if(fx!=fy){
father[fx]=fy;
siz[fy]+=siz[fx];
isinc[fy]=isinc[fy]|isinc[fx];
}
} int main(){
for(int i=1;i<=u;++i)father[i]=i;
for(int i=1;i<=u;++i)siz[i]=1;
scanf("%d",&n);
while(n--){
int x,y;
scanf("%d%d",&x,&y);
if(Getf(x)==Getf(y)){
isinc[Getf(x)]=1;
}else{
Unionn(x,y);
}
} for(int i=1;i<=u;++i){
int f=Getf(i);
if(isinc[f])continue;
if(siz[f]==1){
printf("%d\n",i-1);
return 0;
}
--siz[f];
}
printf("%d\n",u);
return 0;
}
最新文章
- java compiler level does not match the version of the installed java project facet 解决方案
- Django RedirectView
- PhyLab2.0需求与功能分析改进文档(NABCD)
- 分布式人工智能标记语言(DAIML)示例
- win7 64位安装mongodb及管理工具mongoVUE1.6.9.0
- QT软键盘
- 0610 python 基础03
- 要想提高PHP的编程效率,你必须遵守的原则
- Excel开发之旅
- 给织梦DEDECMS添加栏目图片与英文名显示
- PHP使用prepare(),insert数据时要注意的一点!!!
- Oracle-03:关系型数据库和非关系的数据库的各自优缺点与区别
- openstack网络基础:网络叠加模式VLAN、VxLAN、GRE
- pycharm 安装
- python学习日记(基础数据类型及其方法02)
- golang sync.Pool包的使用和一些注意地方
- 通过github搭建个人博客
- INTRO: THE DAWN (亡灵序曲) 中独白
- 理解 python 中__name__ = &#39;__main__&#39; 的作用
- MyCat - 背景篇(1)