0x69 图论-二分图的覆盖与独立集】的更多相关文章

3997: [TJOI2015]组合数学 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 919  Solved: 664 Description 给出一个网格图,其中某些格子有财宝,每次从左上角出发,只能向下或右走.问至少走多少次才能将财宝捡完.此对此问题变形,假设每个格子中有好多财宝,而每一次经过一个格子至多只能捡走一块财宝,至少走多少次才能把财宝全部捡完. Input 第一行为正整数T,代表数据组数. 每组数据第一行为正整数N,M代表网格图有…
[pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=59001242 向大(hei)佬(e)势力学(di)习(tou) 问题描述: 在一个有m*n 个方格的棋盘中,每个方格中有一个正整数.现要从方格中取数,使任 意2 个数所在方格没有公共边,且取出的数的总和最大.试设计一个满足要求的取数算法. «编程任务: 对于给定的方格棋盘,按照取数要求编程找出总和最大的数. 输入描述 Input Description…
声明:本博客所有题解都参照了网络资料或其他博客,仅为博主想加深理解而写,如有疑问欢迎与博主讨论✧。٩(ˊᗜˋ)و✧*。 POJ3041 Asteroids 题目描述 假如你现在正处在一个 \(N*N\) 的矩阵中,这个矩阵里面有 \(K\) 个障碍物,你拥有一把武器,一发弹药一次能消灭一行或一列的障碍物,求最小的弹药消灭全部障碍物 Solution 这是经典的最小点覆盖问题,用到了二分图匹配的思想 建图方式:我们把行和列分成左右两组,对于每个障碍物 \((x, y)\) 进行连边 只要每个障碍物…
二分图的判断(dfs染色法) 如何判断一个图是否为二分图 普通染色法模板 C++ 代码模板如下 思想:先将当前点染色,然后再将该点相连的结点进行染另外一种颜色 下面附上自己画的一张图假设我们从第一个点开始染成红色 后面的染色过程结合下面的代码就很好理解啦 宝图奉上: 请结合代码分析效果会更好 正确情乱: 无法构成二分图的例子如下: 染色过程核心代码 bool dfs(int node, int col) { color[node] = col; //染色 for (int i = 0; i <…
Tour Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 2628    Accepted Submission(s): 1285 Problem Description In the kingdom of Henryy, there are N (2 <= N <= 200) cities, with M (M <= 30000…
#include <iostream> #include <cstring> #include <cstdio> using namespace std; const int MAXN = 305; const int INF = 0x3f3f3f3f; int love[MAXN][MAXN]; // 记录每个妹子和每个男生的好感度 int ex_girl[MAXN]; // 每个妹子的期望值 int ex_boy[MAXN]; // 每个男生的期望值 bool vi…
最小点权覆盖 给出一个二分图,每个点有一个非负点权 要求选出一些点构成一个覆盖,问点权最小是多少 建模: S到左部点,容量为点权 右部点到T,容量为点权 左部点到右部点的边,容量inf 求最小割即可. 证明: 每一个割集,对应选择一些点,对应一个覆盖. 每个覆盖有不同的代价,选择最小的就是最小点覆盖 每个割集有不同的代价,选择最小的就是最小割 由于割集和覆盖一一对应 所以,这个新图的最小割,就对应原图的最小点覆盖. 最大点权独立集 给出一个二分图,每个点有一个非负点权 要求选出一些点构成一个独立…
题目大概说有几个黑色.白色矩阵,问能选出黑白不相交的矩形面积和的最大值. 建二分图,黑色矩阵为X部的点,白色为Y部,XY的点权都为其矩阵面积,如果有个黑白矩阵相交则它们之间有一条边,那样问题就是要从这个二分图中选出最大的点使其没有公共边且点权和最大. 即二分图的最大点权独立集.可以建容量网络用最小割求解,在二分图基础上加源点汇点,源点向X部连容量为权值的边,Y部向汇点连容量为权值的边,X部与Y部的无向边改为容量INF的有向边,最后的结果就是所有点权和-最小割. #include<cstdio>…
题目大意: 给你一个n*n的格子的棋盘,每个格子里面有一个非负数. 从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的和最大. 初看: 没想法中..Orz, 万物皆网络流?? 如何构图??如何构图?? 以什么为容量? 格子里的数吗? 点呢? 超级源是什么??超级汇是什么?? 这特么是网络流?? 呜..好想看题解..好难.. 再想会.. 拆点? 或者网络流只是辅助 主算法其实是搜索? 想到7点就看题解了.. 最后的脑洞乱开 超级源向所有点连…
DP&图论  DAY 2  下午 基础树形DP 前言◦ 1:与树或图的生成树相关的动态规划.◦ 2:以每棵子树为子结构,在父亲节点合并,注意树具有天然的子结构.这是很优美的很利于dp的.◦ 3:巧妙利用Bfs或Dfs序,可以优化问题,或得到好的解决方法.◦ 4:可以与树上的数据结构相结合.◦ 5:树形Dp的时间复杂度要认真计算,部分问题可以均摊复杂度分析.◦ 6:一般设f[u]表示u子树的最优价值或者是说方案数.◦或者f[u][k]表示u子树附加信息为k的最优值,往往是通过考虑子树根节点的情况进…