3. 贪心思想(todo)】的更多相关文章

淋漓尽致的贪心思想 波谷一定是一位数.波峰一位数不够大的时候加入到两位数就一定够大了的. 当在寻找波谷碰到零了就自然当成波谷. 当在寻找波峰时碰到零时,将前面的波谷加到前一个波峰上.让当前的零做波谷,使得波谷的值尽量小,这就是本题最关键的贪心思想.一直想不到. 代码中:a表示前一个值,b表示当前考虑的值,tag为偶数时表示正在寻找波谷,奇数时在寻找波峰. #include<iostream> #include<cstdio> #include<cstring> #inc…
NOIP2012BLOCKADE贪心思想证明 这道题的做法是二分时间并检验这个时间是否可行.检验的方法要用到贪心思想. 对于不能到根结点的军队应该尽量向根结点走. 如果军队A能走到根结点但到根结点后剩余的时间不够返回根结点的儿子B,应该让军队A守B. 否则把军队A加入优先队列,用剩余时间小的军队匹配到根结点距离小的儿子. 证明: 一个军队可控制自己和以自己为根的子树.越向上走控制的结点越多. 把这个军队记作A,如果不这样,我们必须要用另一个到达根结点的军队,记作C,因为A剩余时间小于到B的时间,…
力扣上也有一道类似的题 几乎是一样 输出不同 → 力扣leetcode 435. 无重叠区间 区间贪心是比较经典的 就拿洛谷P1803来举例 题目大意 n个比赛 [开始时间,结束时间] 问一个人最多能参加几个(不能同时参加两个且必须有始有终) 题解 首先考虑最简单的情况,如果区间L1被区间L2包含(图a),那么显然选择L1是最好的,也符合局部贪心思想. 然后把所有区间按左端点(此例子就是开始时间)从大到小排序,如果把重叠的区间去除了,必然得到的是y1>y2>...>yn(图b) 所以选择…
一,题意: 有f+1个人(包括自己),n块披萨pie,给你每块pie的半径,要你公平的把尽可能多的pie分给每一个人 而且每个人得到的pie来自一个pie,不能拼凑,多余的边角丢掉.二,思路: 1,输入,并找出最大体积的pie 2,二分法记录每一种情况的体积,及能分给几个人, 贪心的思想: 先取能分给n-1个人的最大体积,逐渐减少每份pie的体积 直到最接近n个人都能获得的pie的最大的体积 3, 输出.三,步骤: 1,输入,max存储最大的pie体积 2,二分法: i,退出条件max-min…
贪心的思想:尽量的从最大值找起.然后在剩余之中,再从最大值找起. 一,题意: M个人,每人N张牌,每轮比较谁出的牌大,最大者为胜.现在给定M和N,以及你的牌,要求输出你至少能确保获得几轮的胜利 从"至少能赢几轮"可以看出:每个人必定都从最大的牌开始出.(只判定输赢两种情况即可)二,思路: 1,输入并从小到大排序; 2,循环并记录赢的次数; 3,输出;三,步骤: 1,sort函数排序 2,先最大的牌比较,再从剩余的牌中,找最大的牌比较,依次循环下去,直到手中牌出完. 循环开始:i = n…
逃生 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7736    Accepted Submission(s): 2248 Problem Description 糟糕的事情发生啦,现在大家都忙着逃命.但是逃命的通道很窄,大家只能排成一行. 现在有n个人,从1标号到n.同时有一些奇怪的约束条件,每个都形如:a必须在b之前.同时,社会是…
Labeling Balls Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 16100   Accepted: 4726 Description Windy has N balls of distinct weights from 1 unit to N units. Now he tries to label them with 1 to N in such a way that: No two balls share…
题目 With highways available, driving a car from Hangzhou to any other city is easy. But since the tank capacity of a car is limited, we have to find gas stations on the way from time to time. Different gas station may give different price. You are ask…
这题是 55.跳跃游戏的升级版 力扣Leetcode 55. 跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. 示例: 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2.从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置. 说明:假设你总是可以到达数组的最后一个位置. 解题思路 还是利用贪心的思想 维护每次…
题意: N位女士一起聚在一个舞厅.每位女士有三个特征值B,I,R.分别代表美貌,智慧,富有. 对于一位女士而言,如果存在一个女士的B,I,R都分别大于她自己的B,I,R.则她自己会自杀. 统计总共有多少个女士会自杀. 1 ≤ N ≤ 500000 0 ≤ Bi, Ii, Ri ≤ 109 思路: 这题想不出来.看了题解后觉得很妙. 思想和最长上升子序列的贪心做法有相像的地方. 按B从小到大排,若B相等按I自大到小排,若I相等,按R从小到大排. *:存在map里的东西(map[key]=val)必…