[bzoj1191][HNOI2006]超级英雄Hero
题意:有n个锦囊妙计,m道题。先从第1道题做起,每道题都有两个妙计可以解决,解决之后才能进入下一题,每个妙计只能用一次,求最多能解决多少题
题解:二分答案+网络流check
#include<cstdio> #include<iostream> #include<cstring> #include<queue> #define S 0 #define T 2001 using namespace std; inline int read() {int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();}return x*f; }queue<int> qu; int cnt=1,n,m; int head[2005],q[2005]; struct edge{int to,next,w; }e[50005];void ins(int f,int t,int w){e[++cnt].next=head[f];head[f]=cnt;e[cnt].to=t;e[cnt].w=w;} void insw(int f,int t,int w){ins(f,t,w);ins(t,f,0);}int dfs(int x,int f) {if(x==T)return f;int used=0;for(int i=head[x];i;i=e[i].next)if(e[i].w&&q[e[i].to]==q[x]+1){int w=dfs(e[i].to,min(e[i].w,f-used));used+=w;e[i].w-=w;e[i^1].w+=w;if(f==used)return f;}return used; }bool bfs(int lim) {memset(q,0,sizeof(q));q[S]=1;qu.push(S);while(!qu.empty()){int x=qu.front();qu.pop();for(int i=head[x];i;i=e[i].next) if(e[i].w&&!q[e[i].to]&&(e[i].to-n<=lim||e[i].to==T)){q[e[i].to]=q[x]+1;qu.push(e[i].to);} }return q[T]>0; }bool check(int x) {int ans=0;for(int i=2;i<=cnt;i+=2) e[i].w=1,e[i^1].w=0;while(bfs(x))ans+=dfs(S,1000000);return ans==x; }int main() {n=read();m=read();for(int i=1;i<=n;i++)insw(S,i,1);for(int i=1;i<=m;i++)insw(read()+1,i+n,1),insw(read()+1,i+n,1),insw(i+n,T,1);int l=1,r=n,mid,ans=0;while(l<=r){mid=(l+r)>>1;if(check(mid))ans=mid,l=mid+1;else r=mid-1; }cout<<ans;return 0; }
转载于:https://www.cnblogs.com/FallDream/p/bzoj1191.html
[bzoj1191][HNOI2006]超级英雄Hero相关推荐
- BZOJ1191: [HNOI2006]超级英雄Hero(二分图匹配)
Time Limit: 10 Sec Memory Limit: 162 MB Submit: 5860 Solved: 2617 [Submit][Status][Discuss] Descri ...
- bzoj1191[HNOI2006] 超级英雄Hero
题目链接:bzoj1191 题目大意: 总共有m道题,选手有n种不同的"锦囊妙计".主持人规定,每道题都可以从两种"锦囊妙计"中选择一种,而每种"锦囊 ...
- bzoj1191 [HNOI2006]超级英雄Hero
Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金.主持人问题准备了若干道题目,只有当选手正确回 ...
- bzoj1191: [HNOI2006]超级英雄Hero
裸匈牙利.我已经15题1A了(捂脸) #include<cstdio> #include<iostream> #include<cstring> #include& ...
- bzoj1191[HNOI2006]超级英雄Hero
裸的二分图匹配,毕竟是t1,但是主要是有一句题目一旦没办法匹配了就要break,没看到闯关制的我调了好久 #include<iostream> #include<cstdio> ...
- bzoj 1191: [HNOI2006]超级英雄Hero
1191: [HNOI2006]超级英雄Hero Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4590 Solved: 2106 [Submit ...
- BZOJ 1191: [HNOI2006]超级英雄Hero 二分图匹配
1191: [HNOI2006]超级英雄Hero Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4430 Solved: 2036 [Submit ...
- 【bzoj1191】 HNOI2006—超级英雄Hero
http://www.lydsy.com/JudgeOnline/problem.php?id=1191 (题目链接) 题意:有m个问题,n个锦囊妙计,每个锦囊妙计可以解决一个问题,每个问题有两个锦囊 ...
- bzoj 1191 [HNOI2006]超级英雄Hero
Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的 多少获得不同数目的奖品或奖金.主持人问题准备了若干道题目,只有当选手正确 ...
最新文章
- js数组中indexOf/filter/forEach/map/reduce详解
- 纳米片晶体管是摩尔定律的下一步,也许是最后一步!
- 代理模式——静态代理,动态代理(JDK代理和CGLib代理)
- 成功解决AttributeError: module tensorflow has no attribute reset_default_graph
- C++ remove、remove_copy、remove_if和remove_copy_if函数使用详解
- SAP IBASE在solution manager里的场景
- 烟袋斜街-后海,印象已模糊
- 如何让代码更易于维护_易于使用的单位和集成代码
- 看printk引发的一点思考
- 微软认知服务应用秘籍 – 与机器人聊知识
- R读写Excel文件中数据的方法
- 蔚来es6_国产Model Y订单挤爆官网,蔚来ES 6惨遭大量退订?
- Java出现The import javax.servlet cannot be resolved 的解决方法
- 反弹shell的各种姿势
- 梦开始的地方——VS2019调试技巧
- vs2019开发android so库
- 几道特别难搞的数据库面试题
- day40 ORM sqlalchemy
- python实现ID3
- 【Hadoop大数据分析与挖掘实战】(一)----------P19~22
热门文章
- vba 自动排序_Excel VBA如何入门?VBA教程 Excel教程 VBA学习 Excel新手课程
- 【ES6(2015)】Promise
- 【ES6(2015)】Symbol
- C++设计模式-适配器模式
- 前端笔记-thymeleaf发送数据给JavaScript变量(普通变量和List)
- c#中使用mysql查询语句_遇到@符合怎么办_C# Mysql 查询 Rownum的解决方法
- android自定义的生命周期,android 自定义控件之ViewGroup生命周期执行步骤(示例代码)...
- mysql log 记录报错 sql语句_MySQL生产库中添加修改表字段引起主从崩溃的问题总结...
- java更新新的知识要怎么知道_晟司小蒙告诉你,Java技术知识点,不定时更新!!!...
- php tea 算法 源码,PHP教程:TEA算法实现