随笔分类 - 算法——贪心
摘要:题目链接:http://poj.org/problem?id=2054 贪心算法,思路参考yxc,涉及树的合并与缩点,将所有触发点构成的链全部缩进根节点即可得到最终的结果。证明: 代码如下: #include<iostream> using namespace std; const int maxn
阅读全文
摘要:题目链接:https://www.acwing.com/problem/content/description/116/ 证明转载于https://www.acwing.com/problem/content/description/116/ 使用“轻微扰动”的方法判断当前的选择是否是最优的,我们可
阅读全文
摘要:题目链接:http://poj.org/problem?id=1328 给出平面上N个点,要求在横轴上放置最少的点来覆盖N个点,其中每个点的覆盖半径都是R,可以将问题转化成用点覆盖线段的问题,计算N个点中每个点的可被管辖区间, 转化成求每个线段中至少有一个点的最少的点数。贪心思想。 代码: #inc
阅读全文
摘要:题目链接:http://poj.org/problem?id=3190 题目中给定N头牛的吃草开始时间和结束时间,每头牛必须单独在一个牛栏里吃草,问最少需要多少个牛栏能满足要求? 抽象出来的模型就是最少能将N个区间不相交地分布在多少个栏目中? 算法步骤: 将所有牛按开始吃草的时间排序;用小根堆维护当
阅读全文
摘要:题目链接:http://poj.org/problem?id=3614 题目可以抽象为:给定一些区间,和某些点,问最多有多少个区间能落入一个点(一个区间最多落入一个点),利用贪心的思想,将区间左端降序,顺序扫描区间,取最大的可被放进区间的点,因为 如果有两个点都能放进这个区间,那较小的点对下一个区间
阅读全文
摘要:题目链接:http://poj.org/problem?id=1521 代码如下: 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<string.h> 5 #include<queue> 6 using
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1735 题目给出一张01图,1代表的是有字,0代表的是空格或者是被涂去的字。一共有m个段落,每个段落都是开头空两行,问最少有多少个字被涂去。 想要的到最少的被涂去的字必须保证每个段落之后的字尽量少。由此想
阅读全文
摘要:最大不相交区间数的一道题是hdu2037 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2037 题目给出n个区间,问最多有多少个区间没有重叠,只需要对区间右端点进行排序就行,因为一个节目结束得早的话就会为其他节目留下更多的时间,如果选择对节目的开始时
阅读全文