POJ1466 最大点权独立集】的更多相关文章

题意:       给你n个人,再给你每个人都喜欢哪些人,让你找到一个最大的集合数,要求这个集合里面任意两个人都不喜欢彼此. 思路:       直接就是在问最大点权独立集元素个数,没啥解释的一遍二分图就行了,输出 n - sum / 2,说下为什么有的最大点权独立集合除以2有的不除吧,这个没什么固定的,比如说这个题给的边一定是双向的,也就是说 1 喜欢 2, 到2的时候也会喜欢1 所以就多出来一倍,要除以二,不是什么最大点权独立集元素个数就是等于n - sum / 2,比如题目给的是单项的关系…
1952: [Sdoi2010]城市规划 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 73  Solved: 23[Submit][Status][Discuss] Description 小猪iPig来到了一个叫做pigsty的城市里,pigsty是一座专门为小猪所准备的城市,城市里面一共有n个小区给小猪们居住,并且存在许多条无向边连接着许多小区.因为这里是一个和谐的城市,所以小猪iPig准备在这个城市里面度过他的余生.若干年之后小猪iPig…
首先要明白图论的几个定义: 点覆盖.最小点覆盖: 点覆盖集即一个点集,使得所有边至少有一个端点在集合里.或者说是“点” 覆盖了所有“边”.. 最小点覆盖(minimum vertex covering): 点最少的点覆盖. 点覆盖数(vertex covering number): 最小点覆盖的点数. 独立集: 独立集即一个点集,集合中任两个结点不相邻,则称V为独立集.或者说是导出的子图是零图(没有边)的点集. 最大独立集(maximum independent set): 点最多的独立集. 独…
题目大概说有几个黑色.白色矩阵,问能选出黑白不相交的矩形面积和的最大值. 建二分图,黑色矩阵为X部的点,白色为Y部,XY的点权都为其矩阵面积,如果有个黑白矩阵相交则它们之间有一条边,那样问题就是要从这个二分图中选出最大的点使其没有公共边且点权和最大. 即二分图的最大点权独立集.可以建容量网络用最小割求解,在二分图基础上加源点汇点,源点向X部连容量为权值的边,Y部向汇点连容量为权值的边,X部与Y部的无向边改为容量INF的有向边,最后的结果就是所有点权和-最小割. #include<cstdio>…
胡伯涛的<最小割模型在信息学竞赛中的应用>写的真牛. 这道题是选择一些男孩和女孩参加party,邀请的男孩女孩之间不能有 8g,图就是个明显的二分图,就是选择一些点之间没有8g关系,就是二分匹配里的最大独立集,但是要求选出的点的权值最大,就是最小割模型里的最大点权独立集了, 最大点权独立集+最小点权覆盖集=图的总权值,这里跟二分匹配一样求出最小点权覆盖就可以,求出最小割后,从原点深搜,流量>0的边才可以走,搜到的左边的点都是要选的点,搜不到的右边的带点也是要选的,最小割就是我们要去掉点的…
题目大意: 给你一个n*n的格子的棋盘,每个格子里面有一个非负数. 从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的和最大. 初看: 没想法中..Orz, 万物皆网络流?? 如何构图??如何构图?? 以什么为容量? 格子里的数吗? 点呢? 超级源是什么??超级汇是什么?? 这特么是网络流?? 呜..好想看题解..好难.. 再想会.. 拆点? 或者网络流只是辅助 主算法其实是搜索? 想到7点就看题解了.. 最后的脑洞乱开 超级源向所有点连…
题目意思很明确就是选一些没有相连的数字,使和最大,建成二分图后求最大点权独立集,, #include<stdio.h> #include<string.h> const int N=2510; const int inf=0x3fffffff; int dis[N],gap[N],head[N],num,start,end,ans; struct edge { int ed,flow,next; }e[N*6]; void addedge(int x,int y,int w) {…
传送门:hdu1565 方格取数(1) 传送门:hdu1569 方格取数(2) 定理:1. 最小点权覆盖集=最小割=最大流2. 最大点权独立集=总权-最小点权覆盖集 步骤: 1. 先染色,取一个点染白色,和它相邻的点染黑色2. 每个白点向它相邻的黑点连一条边,容量为 inf (无穷大)3. 增加源点S,向每一个白色点连一条边,容量为白点的权4. 增加汇点T,每个黑点向T连一条边,容量为黑点的权 #pragma comment(linker,"/STACK:1024000000,102400000…
嗯,这是关于最大点权独立集与最小点权覆盖集的姿势,很简单对吧,然后开始看题. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1569 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Description 给你一个m*n的格子的棋盘,每个格子里面有一个非负数.从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是…
描述 给你一个m*n的格子的棋盘,每个格子里面有一个非负数. 从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取数所在的2个格子不能相邻,并且取出的数的和最大. 输入 包括多个测试实例,每个测试实例包括2整数m,n和m行n列的非负数(m<=50,n<=50) 输出 对于每个测试实例,输出可能取得的最大的和 样例输入 3 375 15 21 75 15 28 34 70 5 样例输出 188 题意 如上 题解 最大点权独立集=总权值-最小点权覆盖 用最小割跑出来的是最小点权覆盖,…