[BZOJ1191]超级英雄Hero
Description
Input
输入文件的一行是两个正整数n和m(0 < n <1001,0 < m < 1001)表示总共有n中“锦囊妙计”,编号为0~n-1,总共有m个问题。
以下的m行,每行两个数,分别表示第m个问题可以使用的“锦囊妙计”的编号。
注意,每种编号的“锦囊妙计”只能使用一次,同一个问题的两个“锦囊妙计”可能一样。
Output
第一行为最多能通过的题数p
从题面上很容易看出这是一个匹配问题,要求最大匹配数。我们把题目和锦囊妙计看做点,构造二分图,把题目可以使用的妙计和题目连边,然后随便跑个二分图最大匹配就可以得到答案了。
题目中的答对一题才能去下一题可以看做要求匹配上的题目是连续的,所以如果匹配不到可以直接break输出当前答案。
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;
#define N 1500
int ans,mate[N],n,m;
bool vis[N],a[N][N];
bool check(int x)
{
for(int i=;i<n;i++)
if(a[x][i]&&!vis[i])
{
vis[i]=true;
if(mate[i]==-||check(mate[i]))
{
mate[i]=x;
return true;
}
}
return false;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++)
{
int x,y;
scanf("%d%d",&x,&y);
a[i][x]=a[i][y]=true;
}
memset(mate,-,sizeof(mate));
for(int i=;i<=m;i++)
{
memset(vis,,sizeof(vis));
if(check(i)) ans++;
else break;
}
printf("%d\n",ans);
return ;
}
由于数据范围比较小所以我偷懒写了匈牙利并且用了邻接矩阵……
[BZOJ1191]超级英雄Hero的更多相关文章
- BZOJ1191 超级英雄Hero (匈牙利算法)
		
直接跑匈牙利,注意到“只有当选手正确回答一道题后,才能进入下一题,否则就被淘汰”,一旦无法满足就直接退出. #include <cstdio> #include <algorithm ...
 - [bzoj1191]超级英雄hero<二分图匹配*匈牙利算法>
		
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1191 今天随便在bzoj找了一题做,题一读完就发现是个匈牙利算法的裸题,原本以为可以一次过 ...
 - [BZOJ1191][HNOI2006]超级英雄Hero  类似二分图的最大匹配
		
1191: [HNOI2006]超级英雄Hero Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4740 Solved: 2162[Submit][ ...
 - BZOJ 1191 超级英雄 Hero 题解
		
BZOJ 1191 超级英雄 Hero 题解 Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金 ...
 - bzoj 1191: [HNOI2006]超级英雄Hero
		
1191: [HNOI2006]超级英雄Hero Time Limit: 10 Sec Memory Limit: 162 MB 二分图匹配... Description 现在电视台有一种节目叫做超 ...
 - BZOJ 1191: [HNOI2006]超级英雄Hero  二分匹配
		
1191: [HNOI2006]超级英雄Hero Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或 ...
 - bzoj 1191: [HNOI2006]超级英雄Hero 并查集 || 匈牙利算法
		
1191: [HNOI2006]超级英雄Hero Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1804 Solved: 850[Submit][S ...
 - bzoj 1191 [HNOI2006]超级英雄Hero(最大基数匹配)
		
1191: [HNOI2006]超级英雄Hero Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2813 Solved: 1331[Submit][ ...
 - BZOJ 1191: [HNOI2006]超级英雄Hero(二分图匹配)
		
云神说他二分图匹配从来都是用网络流水过去的...我要发扬他的精神.. 这道题明显是二分图匹配.网络流的话可以二分答案+最大流.虽然跑得很慢.... -------------------------- ...
 
随机推荐
- kubernetes-dashboard登录出现forbidden 403
			
登录k8s dashboard https://xxxxx:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard ...
 - MVC HtmlHelper 使用大全 [转]
			
原:http://www.cnblogs.com/jyan/archive/2012/07/23/2604474.html#2979358 HtmlHelper用来在视图中呈现 HTML 控件. 以下 ...
 - JavaScript字符串转数值
			
JavaScript字符串转数值:方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数 js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成 ...
 - [golang]svg图片默认按照左上角旋转,改为按中心旋转,重新计算中心偏移量
			
1 前言 svg图片默认按照左上角旋转,改为按中心旋转,重新计算中心偏移量 2 代码 type Point struct { X float64 Y float64 } func GetOffsetX ...
 - oracle plsql基本语法
			
oracle plsql 基本语法 --plsql默认规则:plsql赋值用":=" plsql判断用"=" plsql输入用"&" ...
 - Java8stream表达式
			
// 输出:hello System.out.println(Optional.ofNullable(hello).orElse("hei")); // 输出:hei System ...
 - 图解HTTP(二)
			
第四章 返回结果的HTTP状体码 1.状态码告知从服务器返回的结果 类别 原因短语 1XX Infomational信息性状态码 接收的请求正在处理中 2XX Success成功状态码 请求正常处 ...
 - JAVA项目之增删改查
			
public class ProductDao { // 查询所有商品 // BeanListHandler查询所有商品 public List<Product> getAll() thr ...
 - java开发手册-总结与补充
			
1.分层领域模型规约 1.DO( Data Object):与数据库表结构一一对应,通过 DAO 层向上传输数据源对象. 2.DTO( Data Transfer Object):数据传输对象, Se ...
 - PDF 补丁丁 0.6.2.3572 测试版发布
			
近日有网友反馈 3571 测试版的补丁丁无法正常工作.请下载新发布的 3572 版本.