嗯... 题目链接:http://poj.org/problem?id=3041 这道题的思想比较奇特: 把x坐标、y坐标分别看成是二分图两边的点,如果(x,y)上有行星,则将(x,y)之间连一条边,而我们要做的就是要找尽量少的点把所有的边覆盖,即为最小点覆盖问题,根据König定理:最小覆盖点数= ...
分类:
编程语言 时间:
2019-08-26 22:44:56
阅读次数:
106
▎前言 戳开这个链接看看,惊不惊喜,意不意外?传送门。 没想到我的博客竟然被别人据为己有了,还没办法投诉。 这年头写个博客太难了~~~ 之前小编写过了二分图的一些基础知识和匈牙利算法,今天来讲一讲km算法,若你不知道匈牙利算法,请先看下面的博客。(否则会体验极差) 传送门 ▎km算法 ?『引入』 之 ...
分类:
编程语言 时间:
2019-08-22 10:59:31
阅读次数:
118
1 bool dfs(int u) 2 { 3 for (iterator_t i = G[u].begin(); i != G[u].end(); ++i) { // 对 u 的每个邻接点 4 int v = edges[*i].to; 5 if (!check[v]) { // 要求不在交替路中... ...
分类:
编程语言 时间:
2019-08-22 00:34:11
阅读次数:
89
思路 题意 :该题主要说几个同学分别说出自己的名次所处区间,最后输出可能存在的未说谎的人数及对应的学生编号,而且要求字典序最大。 思路 :刚刚接触匈牙利算法,了解的还不太清楚,附一个专门讲解匈牙利算法的 " 博文 " ,个人认为讲的比较清晰。 AC代码 c include include inclu ...
分类:
编程语言 时间:
2019-08-17 23:45:33
阅读次数:
127
板子(匈牙利算法,邻接矩阵) const int MAXN=2e3+5; int uN, vN; int g[MAXN][MAXN]; int linker[MAXN]; bool used[MAXN]; bool dfs(int u) { for(int v=0; v<vN; v++) if(g[ ...
分类:
其他好文 时间:
2019-08-13 09:16:04
阅读次数:
99
题意:n门课,每门各自有t个开课时间,在不冲突的情况下选最多课。 题解:把周p第q节课转化为数值sum,表示在一周7*12节课中排第几节,用二分图最大匹配。 #include<stdio.h> #include<iostream> #include<algorithm> #include<cstri ...
分类:
编程语言 时间:
2019-08-10 21:59:36
阅读次数:
114
题意:给出P门课程,N个学生。每一门课程可能有多个学生感兴趣然后我们需要匹配,使得每一门课程都只包含一名对其感兴趣的学生问:能否匹配成立思路:这个就是典型的二分图匹配问题。常用匈牙利算法 完整代码:(一开始写成了无向图....)写成有向图是因为学生是可以剩余的 ...
分类:
其他好文 时间:
2019-08-10 21:15:02
阅读次数:
99
链接:P1894 我觉得这道题如果去掉题面,就是一道蓝题了。 这道题还是裸的二分图匹配,用匈牙利算法就可以AC掉。 什么是匈牙利算法?匈牙利 代码几乎差不多,也不需要优化,读入比模板题还复杂点,(他们应该换一下颜色) 1 #include<iostream> 2 #include<cstring> ...
分类:
其他好文 时间:
2019-08-04 19:57:43
阅读次数:
97
众所周知,贪心是一个比较恶心的算法。 区别于常规的算法或数据结构,贪心题一般不会让人看到就想到思路,而是需要我们在一些猜测或是感性分析下,找到一种局部最优的方案,并且可以通过局部最优解推出全局最优解。 T1:防晒 有C头奶牛进行日光浴,第i头奶牛需要minSPF[i]到maxSPF[i]单位强度之间 ...
分类:
其他好文 时间:
2019-08-02 00:31:44
阅读次数:
298