贪心
贪心
cutlery1137
这个作者很懒,什么都没留下…
展开
-
蓝桥杯 翻硬币【贪心】
题目链接:AcWing 1208. 翻硬币小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:oo*oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作。输入格式两行等长的字符串,分别表示初始状态和要达到的目标状态。输出格式原创 2020-10-08 22:46:01 · 105 阅读 · 0 评论 -
leetcode 122. 买卖股票的最佳时机 II【贪心】
题目链接:122. 买卖股票的最佳时机 II给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股票价格 =原创 2020-05-30 14:27:48 · 147 阅读 · 0 评论 -
leetcode 53. 最大子序和【贪心】【线性DP】
题目链接:53. 最大子序和给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4代码如下://贪心class Solution { public int maxSubArray(int[] nums) { int res = nums[0];原创 2020-05-30 11:20:22 · 203 阅读 · 0 评论 -
洛谷P1020 导弹拦截【LIS 贪心+二分】
题目链接:P1020 导弹拦截程序说明:第一个问题是求最长非上升子序列。upper_bound和lower_bound只能对非递减序列进行查找,由题可知 f 数组是单调递减的,因此需要在upper_bound函数中多一个参数:greater()或者手写cmp。第二个问题是求最长上升子序列(Dilworth定理),证明的方法可以参考大佬的博客:DP-导弹拦截。即最长上升子序列和最大非上升子序...原创 2020-02-26 21:31:43 · 289 阅读 · 0 评论 -
最长上升子序列【线性DP】【贪心+二分】
题目链接:896. 最长上升子序列 II给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数N。第二行包含N个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围1≤N≤100000−109≤数列中的数≤109输入样例:73 1 2 1 8 5 6输出样例:4程序说明:动态规划时间复杂度O(n2n^2n2)dp[...原创 2020-02-17 13:43:55 · 496 阅读 · 0 评论 -
洛谷P1182 数列分段 Section II【贪心+二分】
题目链接:P1182 数列分段 Section II程序说明:二分适用于区间有界且单调,例如最大值最小或者最小值最大这类问题。设区间所有数中的最大值为L,区间所有的数总和为R,则答案一定位于L和R之间。利用二分算法快速得出答案。check函数利用贪心的思想,即P1181 数列分段Section I的方法,判断mid是否满足题目要求,如果不满足则在相应的区间进行二分查找。代码如下:#in...原创 2020-02-01 13:53:30 · 365 阅读 · 0 评论 -
洛谷P1090 合并果子
题目链接:P1090 合并果子程序说明:类似于构造一棵哈夫曼树,用优先队列做会很简单。优先队列默认大根堆,构造小根堆的语句:priority_queue<int, vector<int>, greater<int> > q;循环条件是不少于两堆果子,每次循环把两堆小的堆在一起,然后放回队列。push的是a + b,不是sum,不要弄错了。代码如下...原创 2020-01-29 10:31:42 · 332 阅读 · 0 评论 -
洛谷P1803 凌乱的yyy / 线段覆盖
题目链接:洛谷P1803 凌乱的yyy / 线段覆盖程序说明:贪心算法的区间调度问题,在可选工作中,每次都选取结束时间最早的工作。将所有工作按结束时间从小到大排序,若时间不重叠则选取。注意自定义结构体排序的操作。此题的大坑!!结构体名不能用time。。因为这个原因导致编译不能通过。。。代码如下:#include <iostream>#include <algori...原创 2020-01-22 23:33:02 · 376 阅读 · 0 评论 -
洛谷P1031 均分纸牌【贪心】
题目链接:洛谷P1031 均分纸牌程序说明:贪心算法,先计算出平均数即每堆牌的数目,规定每一堆牌只能由其相邻的右侧牌堆提供(这里的提供有正有负),如果某牌堆的数目恰好已经是正确的数目了则跳过该牌堆。代码如下:#include <iostream>using namespace std;const int MAX = 10000; int n, sum, cnt, a[M...原创 2020-01-22 11:31:45 · 237 阅读 · 0 评论 -
POJ3069 Saruman's Army
题目链接:POJ3069 Saruman’s ArmyTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 20492 Accepted: 9926DescriptionSaruman the White must lead his army along a straight path from Isengard to He...原创 2020-01-22 10:25:45 · 219 阅读 · 0 评论 -
POJ3617 Best Cow Line
题目链接:POJ3617 Best Cow LineTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 46695 Accepted: 11881DescriptionFJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of the Yea...原创 2020-01-21 14:09:39 · 198 阅读 · 0 评论