bzoj1854 [Scoi2010]游戏——匈牙利算法
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1854
这题...据说可以用并查集做,但没有去看...
用二分图匹配的话,就把装备和它的两个属性连边,再从属性开始从小到大进行匈牙利算法;
这样可以保证匹配这个属性时先确保前面的都匹配成功了;
所以遇到无法匹配的情况时就结束了,输出即可;
小心TLE,所以避免 memset。
代码如下:
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int const maxn=1000005,maxm=10005; int n,head[maxm],ct,pre[maxn],mx,ans; int vis[maxn]; struct N{int to,next;N(int t=0,int n=0):to(t),next(n) {} }edge[maxn<<1]; void add(int x,int y){edge[++ct]=N(y,head[x]); head[x]=ct;} bool dfs(int x) {for(int i=head[x],u;i;i=edge[i].next){if(vis[u=edge[i].to]!=ans) // if(!vis[u=edge[i].to])//TLE! {vis[u]=ans;if(!pre[u]||dfs(pre[u])){pre[u]=x; return 1;}}}return 0; } int main() {scanf("%d",&n);for(int i=1,x,y;i<=n;i++){scanf("%d%d",&x,&y);add(x,i); add(y,i);mx=max(mx,max(x,y));}for(int i=1;i<=mx;i++){ // memset(vis,0,sizeof vis);//TLE!ans++;if(!dfs(i)){printf("%d\n",ans-1); return 0;}}printf("%d",ans);return 0; }
转载于:https://www.cnblogs.com/Zinn/p/9208122.html
bzoj1854 [Scoi2010]游戏——匈牙利算法相关推荐
- P1129 [ZJOI2007]矩阵游戏 (匈牙利算法)
传送门 题目描述 小 Q 是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏.矩阵游戏在一个n×n \timesn×n黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次 ...
- P1640 [SCOI2010]连续攻击游戏 匈牙利算法
题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...
- bzoj1854: [Scoi2010]游戏 贪心
lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备最多只能使 ...
- bzoj1854: [Scoi2010]游戏
可以跑二分图 到第一个不能匹配的点就退出 嗯 还有并查集判环的做法? 1 #include<iostream> 2 #include<algorithm> 3 #include ...
- bzoj1854 [Scoi2010]游戏
题目链接 第一眼就想到二分图匹配 1 #include<algorithm> 2 #include<iostream> 3 #include<cstdlib> 4 ...
- BZOJ 1854: [Scoi2010]游戏( 二分图最大匹配 )
匈牙利算法..从1~10000依次找增广路, 找不到就停止, 输出答案. --------------------------------------------------------------- ...
- 【每日一题】8月14日题目精讲 [SCOI2010]游戏
来源:牛客网: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 lxhgww最近迷上了一款 ...
- 二分图匹配匈牙利算法DFS实现
1 /*==================================================*\ 2 | 二分图匹配(匈牙利算法DFS 实现) 3 | INIT: g[][]邻接矩阵; ...
- 解题报告:luogu P2423 [HEOI2012]朋友圈【最大团转最大点独立集(匈牙利算法+时间戳优化)】
图的最大团:"任意两点之间都有一条边相连"的子图被称为无向图的团,点数最多的团为图的最大团 朋友圈中任意两个点之间都有关系,既是图中的团. 答案就是图中的最大团. 我们如果把B国的 ...
最新文章
- GridView控件修改、删除示例(修改含有DropDownList控件)
- Docker技术笔记:Docker入门浅尝
- html语言把字变大,css怎么让字体变大?
- SpringBoot+Swagger2.7进行接口测试后台无法获取请求参数
- python自动发邮件富文本_django 实现后台从富文本提取纯文本
- EduCoder Linux文件/目录高级管理三
- 转:ASP.Net下两种全局变量的设置和读取方法
- webpack-dev-server 本地文件 发布 网站 域名 根目录
- Hibernate面试总结
- 《SOA中国路线图》下载
- 千月影视v20 全新UI原生双端投屏加选集加H5全套程序2022最新版
- m1芯片xcode打包IPA processing failed错误解决方案
- 黑盒测试VS白盒测试
- 如何开启显示文件后缀名(扩展名)
- 怎么检测硬盘是否有坏道
- 教育技术学就业方向_现代教育技术专业就业方向
- 熟悉mysql数据库设计和性能优化_MySQL性能优化学习笔记-(1)数据库设计
- Android实现百度网盘一些功能
- 优秀课件笔记之计算机软件立法保护
- 油库、加油站、危化企业防雷工程应用方案
热门文章
- 从传统GAN到improved WGAN
- JZOJ 5167. 【NOIP2017模拟6.26】下蛋爷
- mac 当前文件夹打开终端_Mac上的这些实用你技巧,你知道几个?
- 关于 QAbstractItemModel 学习的一点分享
- python分布式爬虫及数据存储_分布式爬虫
- 个人常用word技巧----平时编辑word能快不少~
- [CODEVS 1285] 宠物收养所
- [codevs 1343] 蚱蜢(省队选拔赛湖南)
- loj#2542 [PKUWC2018]随机游走 (概率期望、组合数学、子集和变换、Min-Max容斥)
- crtsiii型无砟轨道板_为什么高铁轨道不像普快列车轨道那样铺碎石?