题意:有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相关推荐

  1. BZOJ1191: [HNOI2006]超级英雄Hero(二分图匹配)

    Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 5860  Solved: 2617 [Submit][Status][Discuss] Descri ...

  2. bzoj1191[HNOI2006] 超级英雄Hero

    题目链接:bzoj1191 题目大意: 总共有m道题,选手有n种不同的"锦囊妙计".主持人规定,每道题都可以从两种"锦囊妙计"中选择一种,而每种"锦囊 ...

  3. bzoj1191 [HNOI2006]超级英雄Hero

    Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金.主持人问题准备了若干道题目,只有当选手正确回 ...

  4. bzoj1191: [HNOI2006]超级英雄Hero

    裸匈牙利.我已经15题1A了(捂脸) #include<cstdio> #include<iostream> #include<cstring> #include& ...

  5. bzoj1191[HNOI2006]超级英雄Hero

    裸的二分图匹配,毕竟是t1,但是主要是有一句题目一旦没办法匹配了就要break,没看到闯关制的我调了好久 #include<iostream> #include<cstdio> ...

  6. bzoj 1191: [HNOI2006]超级英雄Hero

    1191: [HNOI2006]超级英雄Hero Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4590  Solved: 2106 [Submit ...

  7. BZOJ 1191: [HNOI2006]超级英雄Hero 二分图匹配

    1191: [HNOI2006]超级英雄Hero Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4430  Solved: 2036 [Submit ...

  8. 【bzoj1191】 HNOI2006—超级英雄Hero

    http://www.lydsy.com/JudgeOnline/problem.php?id=1191 (题目链接) 题意:有m个问题,n个锦囊妙计,每个锦囊妙计可以解决一个问题,每个问题有两个锦囊 ...

  9. bzoj 1191 [HNOI2006]超级英雄Hero

    Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的 多少获得不同数目的奖品或奖金.主持人问题准备了若干道题目,只有当选手正确 ...

最新文章

  1. js数组中indexOf/filter/forEach/map/reduce详解
  2. 纳米片晶体管是摩尔定律的下一步,也许是最后一步!
  3. 代理模式——静态代理,动态代理(JDK代理和CGLib代理)
  4. 成功解决AttributeError: module tensorflow has no attribute reset_default_graph
  5. C++ remove、remove_copy、remove_if和remove_copy_if函数使用详解
  6. SAP IBASE在solution manager里的场景
  7. 烟袋斜街-后海,印象已模糊
  8. 如何让代码更易于维护_易于使用的单位和集成代码
  9. 看printk引发的一点思考
  10. 微软认知服务应用秘籍 – 与机器人聊知识
  11. R读写Excel文件中数据的方法
  12. 蔚来es6_国产Model Y订单挤爆官网,蔚来ES 6惨遭大量退订?
  13. Java出现The import javax.servlet cannot be resolved 的解决方法
  14. 反弹shell的各种姿势
  15. 梦开始的地方——VS2019调试技巧
  16. vs2019开发android so库
  17. 几道特别难搞的数据库面试题
  18. day40 ORM sqlalchemy
  19. python实现ID3
  20. 【Hadoop大数据分析与挖掘实战】(一)----------P19~22

热门文章

  1. vba 自动排序_Excel VBA如何入门?VBA教程 Excel教程 VBA学习 Excel新手课程
  2. 【ES6(2015)】Promise
  3. 【ES6(2015)】Symbol
  4. C++设计模式-适配器模式
  5. 前端笔记-thymeleaf发送数据给JavaScript变量(普通变量和List)
  6. c#中使用mysql查询语句_遇到@符合怎么办_C# Mysql 查询 Rownum的解决方法
  7. android自定义的生命周期,android 自定义控件之ViewGroup生命周期执行步骤(示例代码)...
  8. mysql log 记录报错 sql语句_MySQL生产库中添加修改表字段引起主从崩溃的问题总结...
  9. java更新新的知识要怎么知道_晟司小蒙告诉你,Java技术知识点,不定时更新!!!...
  10. php tea 算法 源码,PHP教程:TEA算法实现