ACM-ICPC模板 一、线段树优化的$Dijkstra$ 优先队列版本已经烂大街了,这里就不贴了,而且在下面的分层图里有写 1.普通线段树 时间和内存均是优先队列优化版本的 \(\frac{1}{2}\) int n, m; struct edge { int to, w, nxt; edge() ...
分类:
其他好文 时间:
2020-06-20 21:08:35
阅读次数:
53
本来想写完递归再写这个专栏的,但是老师给了一个贪心的题目,没办法只能开一个板块了 简介 在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解。 与这个局部最优解相对应的全局最优解会在动态规划里面展现出来。 例题 先来一道经典的贪心热热 ...
分类:
编程语言 时间:
2020-06-20 18:50:32
阅读次数:
74
题目链接:http://poj.org/problem?id=3322 这题并不难,理解了状态空间的纬度就很容易实现,其中状态是坐标、躺着的起始位置,躺着的形式。 搜索题目比较考验写代码的能力。 代码: #include<iostream> #include<cstdio> #include<que ...
分类:
编程语言 时间:
2020-06-20 10:36:25
阅读次数:
50
贪心算法就是遵循某种既定原则,不断地选取当前条件下最优的选择来构造每一个子步骤的解决方案,直到获得问题最终的求解。在对问题求解时,总是做出在当前看最好的选择。 也就是说,不从整体最优上考虑,所做的仅是在某种意义上的局部最优解。 利用贪心算法解题,需要解决两个问题 问题是否适合用贪心算法求解 所求问题 ...
分类:
编程语言 时间:
2020-06-20 01:18:11
阅读次数:
79
1.雷达设备 题目链接:https://www.acwing.com/problem/content/114/ 解决思路:我们所要找到的是雷达的最小数目,因此我们需要对每个小岛进行大都分析 ①求出能够到达他的海岸线的范围,通过d与y我们可以求出他的x轴上的覆盖范围,(l,r),然后按照区间的右端点排 ...
分类:
其他好文 时间:
2020-06-19 22:48:02
阅读次数:
56
题目链接:http://poj.org/problem?id=1190 剪枝的常用思考策略:优化搜索顺序(从决策数量越少的位置开始决策)、排除冗余的等效的操作、可行性剪枝、最优性剪枝、上下界剪枝,其中在可行性剪枝方面可以利用“未来期望进行剪枝” 要充分利用不等式关系进行放缩,将不可能的状态进行剪枝, ...
分类:
编程语言 时间:
2020-06-19 16:36:53
阅读次数:
62
题意:有一个字符串和一组数,可以对字符串删去任意字符后为数组的长度,且可以随意排序,要求修改后的字符串的每个位置上的字符满足:其余大于它的字符的位置减去当前位置绝对值之和等于对应序列位置上的数. 题解:贪心,我们发现,数组中$0$的位置一定对应字符串中最大的字符,所以我们从这个位置来构造,我循环来找 ...
分类:
其他好文 时间:
2020-06-19 13:58:58
阅读次数:
70
地址 http://poj.org/problem?id=1258 Sample Input 4 0 4 9 21 4 0 8 17 9 8 0 16 21 17 16 0 Sample Output 28 解答 根据题目的输入格式 还是使用prim比较好 #include <iostream> # ...
分类:
其他好文 时间:
2020-06-19 13:48:51
阅读次数:
41
前言 在上一篇文章中,我们聊了枚举算法和贪心算法,并进行了详细对比,让大家了解了这两个算法的相关特点。相关的传送门如下: 什么是算法?从枚举到贪心再到启发式(上) 今天咱来聊聊启发式算法吧。至于什么是启发式算法,为什么有了枚举和贪心,还要启发式算法。看完这篇文章,相信你就能找到答案哦。 什么是启发式 ...
分类:
编程语言 时间:
2020-06-19 13:44:52
阅读次数:
127
题意:有一组数,每次操作可以将某个数移到头部或者尾部,问最少操作多少次使得这组数非递减. 题解:先离散化将每个数映射为排序后所对应的位置,然后贪心,求最长连续子序列的长度,那么最少的操作次数一定为$n-len$. 感觉不好解释,直接上图,其实就是排序后它们一定是连续的,所以我们就求一个最长的连续的, ...
分类:
其他好文 时间:
2020-06-19 13:37:17
阅读次数:
39