先检讨一下,前一段时间开学,做题懒得发博客,也不总结。。。现在捡起来。

这个题一看是裸的二分图匹配,但是仔细一看还有一些区别,就是必须要连续的连接,否则直接退出。因为前一道题答不出来的话后面的题就没有机会了。

顺便练一下匈牙利算法,跑二分图还是很好写的。

题干:

Description
现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的
多少获得不同数目的奖品或奖金。主持人问题准备了若干道题目,只有当选手正确回答一道题后,才能进入下一题
,否则就被淘汰。为了增加节目的趣味性并适当降低难度,主持人总提供给选手几个“锦囊妙计”,比如求助现场
观众,或者去掉若干个错误答案(选择题)等等。这里,我们把规则稍微改变一下。假设主持人总共有m道题,选
手有n种不同的“锦囊妙计”。主持人规定,每道题都可以从两种“锦囊妙计”中选择一种,而每种“锦囊妙计”
只能用一次。我们又假设一道题使用了它允许的锦囊妙计后,就一定能正确回答,顺利进入下一题。现在我来到了
节目现场,可是我实在是太笨了,以至于一道题也不会做,每道题只好借助使用“锦囊妙计”来通过。如果我事先
就知道了每道题能够使用哪两种“锦囊妙计”,那么你能告诉我怎样选择才能通过最多的题数吗?
Input
输入文件的一行是两个正整数n和m(0 < n <1001,0 < m < 1001)表示总共有n中“锦囊妙计”,编号为0~n-1,总共有m个问题。
以下的m行,每行两个数,分别表示第m个问题可以使用的“锦囊妙计”的编号。
注意,每种编号的“锦囊妙计”只能使用一次,同一个问题的两个“锦囊妙计”可能一样。
Output
第一行为最多能通过的题数p
Sample Input
5 6
3 2
2 0
0 3
0 4
3 2
3 2
Sample Output
4
HINT
Source

代码:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<ctime>
#include<queue>
#include<algorithm>
#include<cstring>
using namespace std;
#define duke(i,a,n) for(int i = a;i <= n;i++)
#define lv(i,a,n) for(int i = a;i >= n;i--)
#define clean(a) memset(a,0,sizeof(a))
const int INF = 1 << 30;
typedef long long ll;
typedef double db;
template <class T>
void read(T &x)
{char c;bool op = 0;while(c = getchar(), c < '0' || c > '9')if(c == '-') op = 1;x = c - '0';while(c = getchar(), c >= '0' && c <= '9')x = x * 10 + c - '0';if(op) x = -x;
}
template <class T>
void write(T x)
{if(x < 0) putchar('-'), x = -x;if(x >= 10) write(x / 10);putchar('0' + x % 10);
}
int line[1005][1005];
int n,m,len = 0,p;
int g[1005];
int vis[1005];
bool find(int i)
{duke(j,0,n - 1){if(line[i][j] && !vis[j]){vis[j] = 1;if(!g[j] || find(g[j])){g[j] = i;return true;}}}return false;
}
int main()
{read(n);read(m);duke(i,1,m){int x,y;read(x);read(y);line[i][x] = line[i][y] = 1;}int ans = 0;duke(i,1,m){clean(vis);if(find(i))ans++;elsebreak;}write(ans);printf("\n");duke(i,1,ans){printf("%d\n",g[i]);}return 0;
}
/*
5 6
3 2
2 0
0 3
0 4
3 2
3 2
*/

转载于:https://www.cnblogs.com/DukeLv/p/9634020.html

B1192 [HNOI2006]超级英雄Hero 二分图匹配相关推荐

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

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

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

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

  3. bzoj #1191 超级英雄(二分图匹配)

    引言 据dm说这道题比较简单? 原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1191​ 标签:二分图匹配 题意描述 [HNOI2006]超 ...

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

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

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

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

  6. BZOJ 1191 [HNOI2006]超级英雄Hero

    题目链接:http://www.zybbs.org/JudgeOnline/problem.php?id=1191 题目大意:有m道题,每道题都对应两种锦囊可以回答对.每种锦囊只能用一次,答对一题继续 ...

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

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

  8. bzoj1191[HNOI2006]超级英雄Hero

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

  9. bzoj1191[HNOI2006] 超级英雄Hero

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

最新文章

  1. python变量定义类型_03_python的数据类型和变量的定义及使用
  2. 2012年7月份第4周51Aspx源码发布详情
  3. python爬虫天气实例scrapy_2017.08.04 Python网络爬虫之Scrapy爬虫实战二 天气预报...
  4. ubuntu18安装微信
  5. Python函数的参数
  6. 学习SQL:INNER JOIN与LEFT JOIN
  7. pytorch里的nn.Embedding是什么东西?
  8. 关于使用OpenXml向Excel插入数据的一点总结
  9. Linux音频驱动-AOSC之Platform
  10. xstream不映射字段_XStream序列化与反序列化对象
  11. python量化投资:简介和策略以及研究流程
  12. 2021阿里淘系工程师推荐书单
  13. Matlab GUI animatedline 串口实时
  14. 雷电模拟器连接android studio教程
  15. AndroidStudio画一条横线
  16. Apache Avro项目简介
  17. DVWA sql注入(high)
  18. java如何判断回文数
  19. LeetCode知识点总结 - 997
  20. GAAS 无人机自动驾驶学习(01-使用机载电脑,通过OFFBOARD模式进行控制飞行)

热门文章

  1. 3DMAX机械建模贴图教程
  2. Android facebook KeyHash生成(生成发布密钥散列)
  3. 轻开B2C电子商务网站(20141231版)发布手册
  4. Reds 过期策略 内存淘汰策略 持久化策略
  5. uniapp 微信小程序 swiper修改指示点的位置和样式
  6. bzoj1758 [Wc2010]重建计划
  7. 手机搜狐 html5,手机搜狐欲改版推全新域名及LOGO 着力Html5技术
  8. 微信新功能,拍一拍的背后,暗藏着商机
  9. 羡青山有思,白鹤忘机。—第四十八天
  10. 梦想世界 2014年8月14日服务器维护公告,《命运之轮》停止运营公告