浅谈贪心策略——相邻交换 题解主要写贪心的考虑方法:相邻交换法。 我们在平时的贪心题几乎都可以正确的贪心方法。 主要思想 设交换前对答案的贡献为x,交换后对答案的贡献为y l 若x>y则不交换 l 若x<y则需交换 l 若x==y则不交换(交换反而增加时间复杂度) 作为题目,需要建立数学模型设置未知 ...
分类:
其他好文 时间:
2018-10-05 17:28:46
阅读次数:
201
有一个二维矩阵 A 其中每个元素的值为 0 或 1 。 移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。 在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。 返回尽可能高的分数。 示例: 简单的贪心策略 ...
分类:
其他好文 时间:
2018-10-01 23:15:30
阅读次数:
149
<题目链接> 题目大意: 一条水平的磁道上有n个磁头和m个待扫描的点,磁头可以左右互不干扰的移动去扫描点,每秒移动一个单位(也可以停留在原地),求这些磁头扫描完这些所有的点最少需要要花多少时间。 解题分析: 本题用二分答案和贪心求解,先二分出这些磁头扫描完所有的点所需的时间,然后用贪心策略去模拟每个 ...
分类:
其他好文 时间:
2018-09-20 17:20:56
阅读次数:
204
题目传送门:https://codeforces.com/contest/1036/problem/B 被这道题坑了,说白了还是菜。 贪心策略是先斜对角从(0,0)走到(n,n),然后往右拐(分奇偶考虑)【若n>m,swap(n,m)】 理论上是画画图,知道切入点是奇偶性后,就能想清楚了 ...
分类:
其他好文 时间:
2018-09-20 11:15:16
阅读次数:
145
给定两个字符串, 判断最少经过多少次swap 可以使得 两个字符串一致, 首先类似的问题 是存在一个 underlying graph 的。 每一个字母都对应着一个节点,两个字符串的不一致表示为图上的一条有向边 最后的问题转化为 图上的最(多)圆环分解 要注意的是贪心策略并不能解决问题(即每一次都选 ...
分类:
其他好文 时间:
2018-09-16 19:48:27
阅读次数:
336
哈夫曼编码还是在暑假时候看的,那时候并没有看懂因为比较菜(虽然现在也是很菜的),在《趣学算法》一书中这个问题讲解十分到位,我这篇博客真的是难以望其项背,只能对其进行一点借鉴和摘抄吧 哈夫曼编码是一棵树,权值越大的节点越靠近树根,越小的节点就越远离树根,从他的定义来看,首先想到的应该是贪心策略吧,没错 ...
分类:
其他好文 时间:
2018-09-11 21:07:27
阅读次数:
306
题意:有N间牛舍,有M头牛,要合理的安排一个最大距离,使得这些牛不能够相互攻击到。 思路: 这题也是设计到了最大化问题,即奶牛之间两两距离最大,可以考虑二分查找的思路 同样的这题也要考虑一下贪心策略,要把奶牛先安置在比较靠前的牛舍中 首先第0个宿舍肯定要入住奶牛的,所以就要考虑从1到M-1个奶牛的宿 ...
分类:
其他好文 时间:
2018-09-05 21:34:14
阅读次数:
140
传送门 题目大意 有编号1~n的星球,在不用的星球间共有m个传送门,任意两个星球间传送门不超过1个,每个传送门需要花费一定的时间,但是在某时刻会在某星球有旅客到达,这时要一定等到没有旅客到达的时候才能出发,问从1走到n最少花费时间是多少。 分析 首先我们先考虑一个贪心策略,如果到达点i的时间有a和b ...
分类:
Web程序 时间:
2018-08-08 18:18:26
阅读次数:
192
传送门 思路:一个贪心策略就是“在不挤超过截至时间的奶牛的前提下,尽量挤奶量大的奶牛”。So我们将奶牛按截至日期从小到大排序,对于每个截至时间t,将所有截至时间为t的奶牛的奶量加入一个大根堆,只留下前t大的数,剩下的直接删去。由于priority_queue没有clear函数,所以我手写了一个堆。。 ...
分类:
其他好文 时间:
2018-08-04 20:35:45
阅读次数:
196
传送门 思路: 对于“找出一种最优排列顺序,使答案最优”的贪心题目,我们可以用“邻项交换”的方法去找出并证明贪心策略。 例如本题,我们假设有两头奶牛,其到达牛圈时间分别为Ti,Ti+1,每分钟吃掉的花朵数分别为Di,Di+1。 有两种情况: ① 排列顺序为i i+1 则两头牛吃掉的花朵数为 res1 ...
分类:
其他好文 时间:
2018-08-04 20:20:36
阅读次数:
134