题目: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]游戏——匈牙利算法相关推荐

  1. P1129 [ZJOI2007]矩阵游戏 (匈牙利算法)

    传送门 题目描述 小 Q 是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏.矩阵游戏在一个n×n \timesn×n黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次 ...

  2. P1640 [SCOI2010]连续攻击游戏 匈牙利算法

    题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...

  3. bzoj1854: [Scoi2010]游戏 贪心

    lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备最多只能使 ...

  4. bzoj1854: [Scoi2010]游戏

    可以跑二分图 到第一个不能匹配的点就退出 嗯 还有并查集判环的做法? 1 #include<iostream> 2 #include<algorithm> 3 #include ...

  5. bzoj1854 [Scoi2010]游戏

    题目链接 第一眼就想到二分图匹配 1 #include<algorithm> 2 #include<iostream> 3 #include<cstdlib> 4 ...

  6. BZOJ 1854: [Scoi2010]游戏( 二分图最大匹配 )

    匈牙利算法..从1~10000依次找增广路, 找不到就停止, 输出答案. --------------------------------------------------------------- ...

  7. 【每日一题】8月14日题目精讲 [SCOI2010]游戏

    来源:牛客网: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 lxhgww最近迷上了一款 ...

  8. 二分图匹配匈牙利算法DFS实现

    1 /*==================================================*\ 2 | 二分图匹配(匈牙利算法DFS 实现) 3 | INIT: g[][]邻接矩阵; ...

  9. 解题报告:luogu P2423 [HEOI2012]朋友圈【最大团转最大点独立集(匈牙利算法+时间戳优化)】

    图的最大团:"任意两点之间都有一条边相连"的子图被称为无向图的团,点数最多的团为图的最大团 朋友圈中任意两个点之间都有关系,既是图中的团. 答案就是图中的最大团. 我们如果把B国的 ...

最新文章

  1. GridView控件修改、删除示例(修改含有DropDownList控件)
  2. Docker技术笔记:Docker入门浅尝
  3. html语言把字变大,css怎么让字体变大?
  4. SpringBoot+Swagger2.7进行接口测试后台无法获取请求参数
  5. python自动发邮件富文本_django 实现后台从富文本提取纯文本
  6. EduCoder Linux文件/目录高级管理三
  7. 转:ASP.Net下两种全局变量的设置和读取方法
  8. webpack-dev-server 本地文件 发布 网站 域名 根目录
  9. Hibernate面试总结
  10. 《SOA中国路线图》下载
  11. 千月影视v20 全新UI原生双端投屏加选集加H5全套程序2022最新版
  12. m1芯片xcode打包IPA processing failed错误解决方案
  13. 黑盒测试VS白盒测试
  14. 如何开启显示文件后缀名(扩展名)
  15. 怎么检测硬盘是否有坏道
  16. 教育技术学就业方向_现代教育技术专业就业方向
  17. 熟悉mysql数据库设计和性能优化_MySQL性能优化学习笔记-(1)数据库设计
  18. Android实现百度网盘一些功能
  19. 优秀课件笔记之计算机软件立法保护
  20. 油库、加油站、危化企业防雷工程应用方案

热门文章

  1. 从传统GAN到improved WGAN
  2. JZOJ 5167. 【NOIP2017模拟6.26】下蛋爷
  3. mac 当前文件夹打开终端_Mac上的这些实用你技巧,你知道几个?
  4. 关于 QAbstractItemModel 学习的一点分享
  5. python分布式爬虫及数据存储_分布式爬虫
  6. 个人常用word技巧----平时编辑word能快不少~
  7. [CODEVS 1285] 宠物收养所
  8. [codevs 1343] 蚱蜢(省队选拔赛湖南)
  9. loj#2542 [PKUWC2018]随机游走 (概率期望、组合数学、子集和变换、Min-Max容斥)
  10. crtsiii型无砟轨道板_为什么高铁轨道不像普快列车轨道那样铺碎石?