思路:二分图匹配;

提交:1次;

题解:如思路;

但是需要多记一个$ans[u]$代表匹配的答案。

#include<cstdio>
#include<iostream>
#include<cstring>
#define ull unsigned long long
#define ll long long
#define R register int
using namespace std;
#define pause (for(R i=1;i<=10000000000;++i))
#define In freopen("NOIPAK++.in","r",stdin)
#define Out freopen("out.out","w",stdout)
namespace Fread {
static char B[1<<15],*S=B,*D=B;
#ifndef JACK
#define getchar() (S==D&&(D=(S=B)+fread(B,1,1<<15,stdin),S==D)?EOF:*S++)
#endif
inline int g() {R ret=0,fix=1; register char ch; while(!isdigit(ch=getchar())) fix=ch=='-'?-1:fix;if(ch==EOF) return EOF; do ret=ret*10+(ch^48); while(isdigit(ch=getchar())); return ret*fix;
} inline bool isempty(const char& ch) {return (ch<=36||ch>=127);}
inline void gs(char* s) {register char ch; while(isempty(ch=getchar()));do *s++=ch; while(!isempty(ch=getchar()));
}
} using Fread::g; using Fread::gs;namespace Luitaryi {
const int N=1010;
int n,m,cnt,C,tot;
int vr[N<<2],nxt[N<<2],fir[N],pre[N],ans[N],vis[N];
inline void add(int u,int v) {vr[++cnt]=v,nxt[cnt]=fir[u],fir[u]=cnt;}
inline bool dfs(int u) {for(R i=fir[u];i;i=nxt[i]) { R v=vr[i];if(vis[v]==C) continue; vis[v]=C;if(!pre[v]||dfs(pre[v])) {pre[v]=u,ans[u]=v; return true;}} return false;
}
inline void main() {n=g(),m=g();for(R i=1,x,y;i<=m;++i) x=g(),y=g(),add(i,x),add(i,y);for(R i=1;i<=m;++i) {++C; if(dfs(i)) ++tot;else break;} printf("%d\n",tot);for(R i=1;i<=tot;++i) printf("%d\n",ans[i]);
}
}
signed main() {Luitaryi::main();
}


2019.07.21

转载于:https://www.cnblogs.com/Jackpei/p/11223489.html

Luogu P2319 [HNOI2006]超级英雄相关推荐

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

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

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

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

  3. [luogu2319 HNOI2006] 超级英雄 (匈牙利算法)

    [luogu2319 HNOI2006] 超级英雄 (匈牙利算法) 传送门 Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题 ...

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

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

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

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

  6. B1192 [HNOI2006]超级英雄Hero 二分图匹配

    先检讨一下,前一段时间开学,做题懒得发博客,也不总结...现在捡起来. 这个题一看是裸的二分图匹配,但是仔细一看还有一些区别,就是必须要连续的连接,否则直接退出.因为前一道题答不出来的话后面的题就没有 ...

  7. bzoj1191 [HNOI2006]超级英雄Hero

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

  8. [bzoj1191][HNOI2006]超级英雄Hero

    题意:有n个锦囊妙计,m道题.先从第1道题做起,每道题都有两个妙计可以解决,解决之后才能进入下一题,每个妙计只能用一次,求最多能解决多少题 题解:二分答案+网络流check #include<c ...

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

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

最新文章

  1. IDEA及IDEA汉化包
  2. ProtoBuf中的编码
  3. adt+选择android+sdk,eclipse+adt+android SDK 开发搭建环境中遇到的问题
  4. 全景图像拼接——基本流程
  5. 下载android版趣步最新版,趣步下载2021安卓最新版_手机app官方版免费安装下载_豌豆荚...
  6. css复选框如何调大一些,创建CSS放大复选框
  7. spark 序列化_spark shell 配置 Kryo 序列化
  8. Python监视域名对应IP地址变化情况
  9. java系列2:方法的重载
  10. java xml编译_IDEA将Maven项目中指定文件夹下的xml等文件编译进classes的方法
  11. 电脑远程链接怎么删除计算机,删除远程桌面连接记录的方法
  12. Android Studio完成音乐盒demo
  13. 克隆虚拟机后无法连接网络的问题
  14. iOS用AVAudioPlayer播放m4a音频
  15. Ivor Horton's Beginning Visual C++ 2008
  16. cadcene17.4改背景颜色
  17. 使用laravel开发微信公众的一个大坑,适合新手学习的laravel接入微信接口
  18. 《利用机器学习开发算法交易系统》
  19. python技术开发证书教育部办法的有用吗_教育部表明:这4个证书已经被取消,依然还有人报考,别再犯傻了...
  20. vba打开html文件,vba打开网页的四种方法

热门文章

  1. 22021年江苏高考成绩查询,江苏高考成绩查询系统入口
  2. 如何把笔记本变成显示器_笔记本电脑如何连接使用今声优盒
  3. c++向量和数组的区别_Spark机器学习-Java版(一)-向量和矩阵
  4. Qt工作笔记-3D效果唤出QWidgets界面(QGraphicsProxyWidget与QTimeLine)
  5. C++工作笔记-简单工厂模式基础(用静态类传入函数指针,再进行调用)(仿大佬代码)
  6. C/C++ OpenCV均值滤波
  7. 武汉科技大学085211计算机,武汉科技大学计算机科学与技术学院
  8. android 清屏函数,浅谈android截屏问题
  9. Python杂谈: __init__.py的作用
  10. 如何修改ant-input的高度_如何利用好Solidworks零件及装配体的多种配置方法?