POJ3692 最大点权独立集元素个数
题意:
n个男孩和m个女孩,给你他们谁和谁彼此了解,问你要找到一个集合,使得这个集合中的男孩和女孩相互了解,并且人数最多。
思路:
简单题目,其实就是在求最大点权独立集元素个数,先说下点券独立集的概念,就是给你一些关系,让你找到一个最大的集合,使得集合中的任意两个人之间都不会有关系,用的是匈牙利算法,对于这个题目我们可以吧不了解的连接到一起,这样得到的就是集合中任意两人都了解的最大人数了,最大点券独立集元素个数 = n + m - 最大匹配数。
#include<stdio.h>
#include<string.h>#define N_node 200 + 10
#define N_edge 40000 + 20typedef struct
{int to ,next;
}STAR;STAR E[N_edge];
int list[N_node] ,tot;
int map[N_node][N_node];
int mk_dfs[N_node] ,mk_gx[N_node];void add(int a ,int b)
{E[++tot].to = b;E[tot].next = list[a];list[a] = tot;
}int DFS_XYL(int s)
{for(int k = list[s] ;k ;k = E[k].next){int to = E[k].to;if(mk_dfs[to]) continue;mk_dfs[to] = 1;if(mk_gx[to] == -1 || DFS_XYL(mk_gx[to])){mk_gx[to] = s;return 1;}}return 0;
}int main ()
{int n ,m ,k ,i ,j;int a ,b ,cas = 1;while(~scanf("%d %d %d" ,&n ,&m ,&k) && n + m + k){memset(map ,0 ,sizeof(map));for(i = 1 ;i <= k ;i ++){scanf("%d %d" ,&a ,&b);map[a][b] = 1;}memset(list ,0 ,sizeof(list));tot = 1;for(i = 1 ;i <= n ;i ++)for(j = 1 ;j <= m ;j ++)if(!map[i][j]) add(i ,j);memset(mk_gx ,255 ,sizeof(mk_gx));int sum = 0;for(i = 1 ;i <= n ;i ++){memset(mk_dfs ,0 ,sizeof(mk_dfs));sum += DFS_XYL(i);}printf("Case %d: %d\n" ,cas ++ ,m + n - sum);}return 0;
}
POJ3692 最大点权独立集元素个数相关推荐
- POJ1466 最大点权独立集
题意: 给你n个人,再给你每个人都喜欢哪些人,让你找到一个最大的集合数,要求这个集合里面任意两个人都不喜欢彼此. 思路: 直接就是在问最大点权独立集元素个数,没啥解释的一遍二分 ...
- [学习笔记]最小割之最小点权覆盖最大点权独立集
最小点权覆盖 给出一个二分图,每个点有一个非负点权 要求选出一些点构成一个覆盖,问点权最小是多少 建模: S到左部点,容量为点权 右部点到T,容量为点权 左部点到右部点的边,容量inf 求最小割即可. ...
- 网络流之最小点权覆盖和最大点权独立集学习
转载:http://yzmduncan.iteye.com/blog/1149057 二分图最小点覆盖和最大独立集都可以转化为最大匹配求解.在这个基础上,把每个点赋予一个非负的权值,这两个问题就转化为 ...
- HDU 1569 最大点权独立集
最大点权独立集与最小点权覆盖是对偶问题,这里先介绍最小点权覆盖的解法. 最小点权覆盖问题是指,给出一张二分图,二分图的每个节点带有一个点权,要求从中选出若干节点,使得这些节点能够覆盖二分图中所有的 ...
- hdu 1569 方格取数(2) 最大点权独立集
二分图. 最大点权独立集=总权-最小点权覆盖集. 哪位大神能给一些二分图 最大点权独立集等等 的相关资料!!!!!跪谢 用网络流求解最小点权覆盖集即可,建图不讲了. #include<cstdi ...
- [luoguP2774] 方格取数问题(最大点权独立集)
传送门 引入两个概念: 最小点权覆盖集:满足每一条边的两个端点至少选一个的最小权点集. 最大点权独立集:满足每一条边的两个端点最多选一个的最大权点集. 现在对网格染色,使得相邻两点颜色不同,之后把两个 ...
- 【BZOJ-1952】城市规划 [坑题] 仙人掌DP + 最大点权独立集(改)
1952: [Sdoi2010]城市规划 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 73 Solved: 23 [Submit][Status ...
- hdu 3657 最大点权独立集变形(方格取数的变形最小割,对于最小割建图很好的题)...
转载:http://blog.csdn.net/cold__v__moon/article/details/7924269 /* 这道题和方格取数2相似,是在方格取数2的基础上的变形.方格取数2解法: ...
- [网络流][最大点权独立集] 方格取数
预备知识: 点覆盖集:无向图G的一个点集,使得该图中所有边都至少有一个端点在该集合内. 最小点权覆盖集:在带点权无向图G中,点权之和最小的覆盖集. 点独立集:无向图G的一个点集,使得任两个在该集合中的 ...
最新文章
- 总结:第一章~第五章
- 柔性体没有应变_边坡防护终结篇!柔性防护系统(主被动网)知识总结!
- XSS挑战之旅平台通关练习(1-20)
- filezilla 共享多个目录_Linux下搭建NFS文件共享服务器
- 程序竞赛中常用的C字符串函数
- 信道容量受哪三个要素_好的餐饮店门头招牌应该怎么设计呢?需要具备哪些要素?...
- Atitit nlp用到的技术与功能自然语言处理 v3 t99.docx Atitit nlp用到的技术与常见类库 目录 1. 常用的技术	1 1.1. 语言处理基础技术 分词 相似度等	1 1.2
- 【每日一题(26)】初等排序算法(3) 插入排序 希尔排序 (更正)
- 台式计算机 无线已连接 无法上网,WiFi已连接不可上网怎么办
- 1586 - Molar mass
- 上海七宝惊现海宝美眉
- 第 05 篇 如何使用 SQL 语句进行模糊查找?
- visio的使用技巧
- MySQL全量同步和增量同步-
- 一个实施 + 一个软件负责人 = 项目经理?
- 重构 - 提炼函数,消除重复代码
- Spring Security 入门 Remember-Me 记住我功能
- Learning diary
- 熊猫直播 开启html5,熊猫直播助手使用小葫芦插件教程
- 疑似1.59亿LinkedIn领英客户数据库正在以99美元的价格被售卖