BZOJ1191: [HNOI2006]超级英雄Hero(二分图匹配)
Submit: 5860 Solved: 2617
[Submit][Status][Discuss]
Description
Input
输入文件的一行是两个正整数n和m(0 < n <1001,0 < m < 1001)表示总共有n中“锦囊妙计”,编号为0~n-1,总共有m个问题。
以下的m行,每行两个数,分别表示第m个问题可以使用的“锦囊妙计”的编号。
注意,每种编号的“锦囊妙计”只能使用一次,同一个问题的两个“锦囊妙计”可能一样。
Output
第一行为最多能通过的题数p
Sample Input
3 2
2 0
0 3
0 4
3 2
3 2
Sample Output
HINT
Source
很zz的一道二分图匹配
对于$m$个问题,向他能选的两个连边
跑匈牙利
如果不能匹配的话直接退出!!
#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<vector> #define LL long long using namespace std; const int MAXN = 1e3 + 10, INF = 1e9 + 10; inline int read() {char c = getchar(); int x = 0, f = 1;while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();return x * f; } int N, M; vector<int> v[MAXN]; int link[MAXN], vis[MAXN], cnt = 1, Ans[MAXN]; bool Aug(int x) {for(int i = 0; i < v[x].size(); i++) {int to = v[x][i];if(vis[to] == cnt) continue;vis[to] = cnt;if(link[to] == -1 || Aug(link[to])) {link[to] = x; return 1;}}return 0; } main() { #ifdef WIN32freopen("1191.in", "r", stdin);freopen("1191.out", "w", stdout); #endifmemset(link, -1, sizeof(link));memset(Ans, -1, sizeof(Ans));N = read(); M = read();for(int i = 0; i < M; i++) {int x = read(), y = read();v[i].push_back(x);if(x != y) v[i].push_back(y);}int ans = 0;for(int i = 0; i < M; i++, cnt++)if(Aug(i)) ans++;else break; for(int i = 0; i < N; i++)Ans[link[i]] = i;printf("%d\n", ans);/*for(int i = 0; i < N; i++)if(Ans[i] != -1)printf("%d\n", Ans[i]);*/return 0; }
转载于:https://www.cnblogs.com/zwfymqz/p/9285468.html
BZOJ1191: [HNOI2006]超级英雄Hero(二分图匹配)相关推荐
- BZOJ 1191: [HNOI2006]超级英雄Hero 二分图匹配
1191: [HNOI2006]超级英雄Hero Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4430 Solved: 2036 [Submit ...
- B1192 [HNOI2006]超级英雄Hero 二分图匹配
先检讨一下,前一段时间开学,做题懒得发博客,也不总结...现在捡起来. 这个题一看是裸的二分图匹配,但是仔细一看还有一些区别,就是必须要连续的连接,否则直接退出.因为前一道题答不出来的话后面的题就没有 ...
- bzoj1191[HNOI2006]超级英雄Hero
裸的二分图匹配,毕竟是t1,但是主要是有一句题目一旦没办法匹配了就要break,没看到闯关制的我调了好久 #include<iostream> #include<cstdio> ...
- bzoj1191[HNOI2006] 超级英雄Hero
题目链接:bzoj1191 题目大意: 总共有m道题,选手有n种不同的"锦囊妙计".主持人规定,每道题都可以从两种"锦囊妙计"中选择一种,而每种"锦囊 ...
- [bzoj1191][HNOI2006]超级英雄Hero
题意:有n个锦囊妙计,m道题.先从第1道题做起,每道题都有两个妙计可以解决,解决之后才能进入下一题,每个妙计只能用一次,求最多能解决多少题 题解:二分答案+网络流check #include<c ...
- bzoj1191 [HNOI2006]超级英雄Hero
Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金.主持人问题准备了若干道题目,只有当选手正确回 ...
- bzoj1191: [HNOI2006]超级英雄Hero
裸匈牙利.我已经15题1A了(捂脸) #include<cstdio> #include<iostream> #include<cstring> #include& ...
- bzoj #1191 超级英雄(二分图匹配)
引言 据dm说这道题比较简单? 原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1191 标签:二分图匹配 题意描述 [HNOI2006]超 ...
- bzoj 1191: [HNOI2006]超级英雄Hero
1191: [HNOI2006]超级英雄Hero Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4590 Solved: 2106 [Submit ...
最新文章
- match_parent和fill_parent的区别
- Java学习笔记3——继承
- 今天的新坑 ubuntu18.04安装docker
- supmap java_SuperMap iServerJava安装与出图必读之Windows操作系统篇
- 卸载shockwave flash插件
- beanutils工具类_Apache Commons 工具类介绍及简单使用
- 科大星云诗社动态20210818
- C++ cin cout
- 这些让人看瞎了的设计!实力证明,数学才是世界的最终boss!
- Daily scrum[2013.12.02]
- eCognition易康domain is empty原因
- Android 存储学习之使用SharedPreference保存文件
- C/C++[codeup 1934,1932,1935]查找
- 计算机视觉教程0-4:手推张正友标定法,详解图像去畸变(附代码)
- 瑞星企业防毒2010网络版(二)管理及应用
- Semaphore释疑
- 良心到难以置信的网站推荐第7期丨全程干货
- 短视频代运营服务内容
- 【Win10系统自带软件】文件系统错误(-2147219196)解决方法
- oracle教程课件,Oracle入门教程(PPT课件)
热门文章
- 【Java深入研究】10、红黑树
- Java面试基础知识(1)
- 05 HTML字符串转换成jQuery对象、绑定数据到元素上
- Android AudioTrack/AudioRecord -wav文件读取3
- Flex调用WebService后的数据处理
- OpenCV circle图像上画圆
- Linux shell的标准输入、输出和错误
- java模拟网易邮箱登录_求赐教:网易邮箱Web端模拟登录看信的加密参数_ntes_nnid、_ntes_nuid...
- java记录登陆时间_Spring security如何实现记录用户登录时间功能
- Spring MVC 登录拦截器