HDU 1498:50 years, 50 colors(二分图匹配)
http://acm.hdu.edu.cn/showproblem.php?pid=1498
题意:给出一个 n*n 的矩阵,里面的数字代表一种颜色,每次能炸掉一排或者一列的相同颜色的气球,问有哪些颜色的气球不能在 k 次内炸完的,从小到大输出,能炸完输出-1.
思路:先存下点,用一个数字标记颜色是否出现过,然后遍历每一种颜色,再把这种颜色的行号和列号连边,跑一遍匈牙利,如果得到的结果大于 k 那么这种颜色就不行。
1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <cstdlib> 5 #include <algorithm> 6 #include <string> 7 #include <iostream> 8 #include <stack> 9 #include <map> 10 #include <queue> 11 using namespace std; 12 #define N 100010 13 #define INF 0x3f3f3f3f 14 struct node 15 { 16 int nxt, v; 17 }edge[105*105]; 18 int mp[105][105]; 19 int head[105], tot; 20 bool vis[105], col[105]; 21 int ans[105]; 22 int match[105], n, k; 23 24 void add(int u, int v) 25 { 26 edge[tot].v = v; edge[tot].nxt = head[u]; head[u] = tot++; 27 } 28 29 bool dfs(int u) 30 { 31 for(int i = head[u]; ~i; i = edge[i].nxt) { 32 int v = edge[i].v; 33 if(!vis[v]) { 34 vis[v] = 1; 35 if(match[v] == -1 || dfs(match[v])) { 36 match[v] = u; 37 return true; 38 } 39 } 40 } 41 return false; 42 } 43 44 int main() 45 { 46 while(scanf("%d%d", &n, &k), n + k) { 47 memset(mp, 0, sizeof(mp)); 48 memset(col, 0, sizeof(col)); 49 for(int i = 1; i <= n; i++) { 50 for(int j = 1; j <= n; j++) { 51 scanf("%d", &mp[i][j]); 52 col[mp[i][j]] = 1; 53 } 54 } 55 int l = 0; 56 for(int i = 1; i <= 50; i++) { 57 if(col[i]) { 58 tot = 0; 59 memset(head, -1, sizeof(head)); 60 for(int j = 1; j <= n; j++) { 61 for(int k = 1; k <= n; k++) { 62 if(mp[j][k] == i) { 63 add(j, k); 64 } 65 } 66 } 67 memset(match, -1, sizeof(match)); 68 int tmp = 0; 69 for(int j = 1; j <= n; j++) { 70 memset(vis, 0, sizeof(vis)); 71 if(dfs(j)) tmp++; 72 } 73 if(tmp > k) ans[l++] = i; 74 } 75 } 76 // printf("ans : "); 77 for(int i = 0; i < l; i++) { 78 if(i != l - 1) printf("%d ", ans[i]); 79 else printf("%d\n", ans[i]); 80 } 81 if(l == 0) printf("-1\n"); 82 } 83 return 0; 84 }
转载于:https://www.cnblogs.com/fightfordream/p/6042795.html
HDU 1498:50 years, 50 colors(二分图匹配)相关推荐
- HDU 2444 The Accomodation of Students 二分图匹配
HDU 2444 The Accomodation of Students 二分图匹配 题目来源: HDU 题意: 给出学生数n和关系数m,接下来给出m个关系. 要求将学生分成两部分,每一部分不能有互 ...
- HDU 2063 过山车 (二分图匹配之匈牙利算法)
过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- 【HDU 1150】Machine Schedule(二分图匹配)
机器的不同模式为点,对于每个job,建两条边 A机器需要的模式<->B机器需要的模式. 问题转化为最小点覆盖,然后用二分图的最小点覆盖==最大匹配,用匈牙利算法解. #include &l ...
- HDU——1498 50 years, 50 colors
50 years, 50 colors Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- 【 HDU - 5093】Battle ships(匈牙利算法,二分图匹配)
题干: Dear contestant, now you are an excellent navy commander, who is responsible of a tough mission ...
- HDU 2819 Swap(二分图匹配)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=2819 [题目大意] 给出一个棋盘,由白格子和黑格子组成,可以交换棋盘的行列, 使得其主对角线为黑格 ...
- 【HDU - 5090】Game with Pearls (匈牙利算法,二分图匹配)
题干: Tom and Jerry are playing a game with tubes and pearls. The rule of the game is: 1) Tom and Jerr ...
- HDU 3081 Marriage Match II (并查集+二分+最大流 | 并查集+二分图匹配)
题意:n 个男生.n个女生玩游戏,每个女生都可以和她不讨厌的男生结婚,此外她的朋友如果也不讨厌这个男生,也可以和他结婚:对于女生,如果A和B是朋友,B和C是朋友,那么A和C也是朋友.每次游戏女生会找一 ...
- HDU 2389 Rain on your Parade (二分图匹配)
题意:天马上就要下雨了,然后有n个人,m把伞,然后分别给出人的坐标和他们跑的速度,以及伞的坐标,然后问在t时间内,最多能有多少人拿到伞. 题解:二分图匹配 之前做过一道类似的题目,是用最大流做的,但这 ...
- Dinic二分图匹配 || Luogu P3386
题面:[模板]二分图匹配 思路:Dinic实现二分图匹配,要建一个超级源点(S)和超级汇点(T),分别定为N+M+1和N+M+2 然后S去和N中的数建正边和反边,正边权值为1,反边权值为0:M中的数去 ...
最新文章
- 在Linux上编译安装php开发环境(install mysql5.6)-3
- Python从N个数中找到最大的K个数
- [mybatis]动态sql_内置参数_parameter_databaseid
- java 监控对象是什么_多线程-Java中的对象监视器是什么意思? 为什么要使用这个词?...
- 基于链表的两个集合的差集
- 在anaconda下创建我的第一个scrapy爬虫——爬取dmoz网站某一网址下的目录的链接名称以及链接地址...
- 常见的通配符_技术干货 | 常见的mysql注入语句
- C语言解决迭代递推问题
- 推理集 —— 特殊的工具(二)
- .net core websocket
- C语言蒙特卡洛,蒙特卡洛(Monte Carlo)模拟法 一 ( EXCEL 举例)
- Java聊天室系统的设计与实现(完整源码 sql文件 论文)
- python任务调度demo-百度贴吧签到
- 论文结构及其内容简介
- Snowy Smile hdu 6638 线段树
- 新浪邮箱服务器设置,新浪企业邮箱|帮助中心
- Excel - VBA的隔行拷贝功能
- 鸿蒙系统充电动画,荣耀智慧屏首发抢先体验:电视只是小功能,鸿蒙系统才是真亮点...
- 我若不坚强,没有人会懂我到底有多痛
- CVPR2022|稀疏融合稠密:通过深度补全实现高质量的3D目标检测
热门文章
- TypeScript Type Innference(类型推断)
- 500 OOPS:cannot change directory:/root 问题
- POJ 图算法(3)
- APAX-5017PG 项目开发全程记录 - 筹备篇
- Unity初步 基本拼图实现
- 第四周编程总结--助教
- IDEA编译时出现 Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8
- 13.2. Mount partition
- Tomcat开机启动
- cms查询系统(一)背景以及需求分析与设计