BZOJ 1143: [CTSC2008]祭祀river(最大独立集)
题面:
https://www.lydsy.com/JudgeOnline/problem.php?id=1143
一句话题意:给一个DAG(有向无环图),求选出尽量多的点使这些点两两不可达,输出点个数。
N、M,分别表示点数和有向边数,n<=100,m<=1000。
题解:
第一眼看到题,发现是个DAG之后直接想到了dp,然后发现不可做。
然后仔细分析题目,发现就是在所有联通的点对(a,b)中两点不都被选中。
欸这不就是个最大独立集吗,
于是先floyd判连通性后跑hungary水过。
代码:
#include<bits/stdc++.h> using namespace std; const int maxn=,maxm=;
int g[maxn][maxn],fa[maxn],vis[maxn],ans,n,m,head[maxn],cnt; struct ed{
int next,to;
}e[maxm]; void add(int u,int v){
e[++cnt]=(ed){head[u],v};head[u]=cnt;
} bool hungary(int x){
for(int i=head[x];i;i=e[i].next){
int tt=e[i].to;
if(vis[tt]) continue;
vis[tt]=;
if(!fa[tt]||hungary(fa[tt])){
fa[tt]=x;
return ;
}
}
} int main(){ scanf("%d%d",&n,&m);
int u,v;
for(int i=;i<=m;i++)
scanf("%d%d",&u,&v),g[u][v]=; for(int k=;k<=n;k++)
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
g[i][j]=g[i][j]|(g[i][k]&g[k][j]); for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(i!=j&&g[i][j])
add(i,j); for(int i=;i<=n;i++){
memset(vis,,sizeof(vis));
if(hungary(i))
ans++;
}
printf("%d",n-ans);
return ;
}
BZOJ 1143: [CTSC2008]祭祀river(最大独立集)的更多相关文章
- BZOJ 1143: [CTSC2008]祭祀river 最大独立集
题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=1143 题解: 给你一个DAG,求最大的顶点集,使得任意两个顶点之间不可达. 把每个顶点v ...
- Bzoj 2718: [Violet 4]毕业旅行 && Bzoj 1143: [CTSC2008]祭祀river 传递闭包,二分图匹配,匈牙利,bitset
1143: [CTSC2008]祭祀river Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1878 Solved: 937[Submit][St ...
- bzoj 1143: [CTSC2008]祭祀river / 2718: [Violet 4]毕业旅行 -- 二分图匹配
1143: [CTSC2008]祭祀river Time Limit: 10 Sec Memory Limit: 162 MB Description 在遥远的东方,有一个神秘的民族,自称Y族.他们 ...
- BZOJ 1143: [CTSC2008]祭祀river 最长反链
1143: [CTSC2008]祭祀river Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline ...
- [BZOJ 1143] [CTSC2008] 祭祀river 【最长反链】
题目链接:BZOJ - 1143 题目分析 这道题在BZOJ上只要求输出可选的最多的祭祀地点个数,是一道求最长反链长度的裸题. 下面给出一些相关知识: 在有向无环图中,有如下的一些定义和性质: 链:一 ...
- BZOJ 1143 [CTSC2008]祭祀river(二分图匹配)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1143 [题目大意] 给出一张有向图,问最大不连通点集,连通具有传递性 [题解] 我们将 ...
- BZOJ 1143: [CTSC2008]祭祀river(二分图最大点独立集)
http://www.lydsy.com/JudgeOnline/problem.php?id=1143 题意: 思路: 二分图最大点独立集,首先用floyd判断一下可达情况. #include< ...
- 【刷题】BZOJ 1143 [CTSC2008]祭祀river
Description 在遥远的东方,有一个神秘的民族,自称Y族.他们世代居住在水面上,奉龙王为神.每逢重大庆典, Y族都会在水面上举办盛大的祭祀活动.我们可以把Y族居住地水系看成一个由岔口和河道组成 ...
- [BZOJ]1143: [CTSC2008]祭祀river
题目大意:给定一个n个点m条边的有向无环图,问最多选多少个点使得两两之间互不到达.(n<=100,m<=1000) 思路:题目所求即最长反链,最长反链=最小链覆盖,对每个点向自己能到的所有 ...
随机推荐
- 【学亮IT手记】mysql创建/查看/切换数据库
--创建数据库 create database web_test1 CHARACTER set utf8; --切换数据库 use web_test1; --查看当前使用的数据库 select DAT ...
- Oracle 修改数据库表数据提交之后进行回滚
--查看历史数据 select * from test1 as of timestamp to_timestamp('2018-12-23 14:41:00', 'yyyy-mm-dd hh24:mi ...
- Day 4-4 shutil模块
常用方法: import shutil f = open("conf.ini", "r") f1 = open("shutil.ini", ...
- 免费苹果账号(apple id)申请ios证书p12真机调试
HBuilder可以直接打包越狱版的ipa包,但需要越狱手机才能安装,如果需要安装到没越狱的手机安装,需要自己申请ios证书打包. 一般是需要一个付费了的苹果开发者账号才能申请ios证书打包. 这里介 ...
- 微信小程序登录授权并获取手机号
一.请求发送 携带 code 到后台换取 openid var that = this; wx.login({ success(res) { console.log(res); var code = ...
- 关于WPF中Popup中的一些用法的总结
Popup控件是一个常用的非常有用的控件,顾明思义就是弹出式控件,首先我们来看看MSDN对它的解释吧,表示具有内容的弹出窗口,这个是非常重要的控件,我们看看它的继承关系吧: System.Object ...
- 除了binlog2sql工具外,使用python脚本闪回数据(数据库误操作)
利用binlog日志恢复数据库误操作数据 在人工手动进行一些数据库写操作的时候(比方说数据修改),尤其是一些不可控的批量更新或删除,通常都建议备份后操作.不过不怕万一,就怕一万,有备无患总是好的.在线 ...
- python设计模式第八天【装饰器模式】
1.定义 使用包装的释放扩展类的功能,但是不使用继承 2.使用场景 3.代码实现 #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ def MyDecorat ...
- curl 命令 从文件读取参数
-d @filename 从文件读入内容-d @- 从stdin读入内容 -x localhost:8888 加上fiddler代理 一个sample curl -K api.conf -d @b ...
- React Router 4.0 基本使用
路由的概念,起初来源于服务端,就是当浏览器访问一个网站的不同页面时,服务端能够正确的返回页面的内容.当访问首页时,它能返回首页的内容,访问关于我们页面时,返回关于我们的内容.可以看到路由就是一种控制和 ...