![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
贪心
文章平均质量分 88
z岁月无声
这个作者很懒,什么都没留下…
展开
-
LeetCode-714.买卖股票的最佳时机含手续费
地址:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/思路:贪心 || DP思路一、贪心:利用贪心思路,当出现峰值(买卖间有正差值)时即将股票卖掉,同时寻找下一个峰值。对于卖出时需要手续费fee,其峰值相当于卖出价格prices[i]-fee,记录当前最小值Min,当prices[i]-fee>Min时,则答案加上其差值res+=prices[i]-fee-Min;同时令 .原创 2020-12-04 00:43:35 · 146 阅读 · 0 评论 -
LeetCode-968.监控二叉树
地址:https://leetcode-cn.com/problems/binary-tree-cameras/思路:贪心/树状dp1.贪心:对于树来说,监控父节点一定不监控子节点覆盖的点多,因此只要从叶子节点处贪心,同时记录当前节点的状态即可,节点的有三种状态:0-节点未被覆盖、1-节点被覆盖但不是监控点、2-节点为覆盖点2.树状dp:节点同样是这三种状态,dp[i][j]为子树 i 为 j 状态时被覆盖所需要监控节点的最小数量再对父节点的左右节点是否存在分类讨论即可Code 1:..原创 2020-09-22 12:28:18 · 343 阅读 · 0 评论 -
西南民族大学第十一届程序设计竞赛(同步赛)-C Guard the empire
地址:https://ac.nowcoder.com/acm/contest/3570/C思路:思维+贪心这题直接将点按x轴排序贪心是不对的,这样并不能保证前一个点的最右边包含的圆能够包含后一个点例如包含(0,1)的最右边的圆不能够包含(1,2)。而可以考虑将点转换为包含该点的圆心的范围,即转换为一条线段,在对其排序贪心即可。Code:#include<iostre...原创 2019-12-29 19:59:56 · 491 阅读 · 0 评论 -
Codeforces Round #213 (Div. 2)-D. Free Market
地址:http://codeforces.com/problemset/problem/365/D思路:贪心,思想十分巧妙(只可意会不可言传QAQ),先将所有能够到达的状态先做标记,在从sum=0开始每次取 (sum,sum+d]的最大状态,同时记录搜索次数s,这样到搜索不到时,sum,s即为答案。Code :#include<iostream>#include&l...原创 2018-08-19 16:55:28 · 273 阅读 · 0 评论 -
POJ-3614-Sunscreen
地址:http://poj.org/problem?id=3614思路:一,贪心+set : 对于所有的牛按照 minSPF 由大到小排序然后遍历,对于 牛a[i] 只要找到比a[i].max小的最大的SPF防晒乳即为最优解,因为取大的那么下一个a[i]可能用不到,而对于查找可以用set,再用一个数组记录每瓶防晒乳的个数即可。二,贪心+优先队列: 将所有的牛a[n] 按照minS...原创 2018-08-22 11:42:47 · 204 阅读 · 0 评论 -
Codeforces Round #211 (Div. 2)-D. Renting Bikes
题目地址:http://codeforces.com/contest/363/problem/D思路:贪心+二分。对于可购买的最多的单车数量s,可以对其进行二分查找求出s,首先将学生个人钱a[n]进行由大到小排序,单车价格d[m]由小到大排序,当查找数为h时,按照贪心思想,应由学生钱多的前h个去买 单车价格小的前h辆,这样即可判断是否能够买h辆车,对于买s辆车学生个人钱花费最小值 ...原创 2018-08-03 13:32:22 · 128 阅读 · 0 评论 -
BZOJ-1691:[Usaco2007 Dec]挑剔的美食家
1691: [Usaco2007 Dec]挑剔的美食家Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1014 Solved: 525[Submit][Status][Discuss]Description与很多奶牛一样,Farmer John那群养尊处优的奶牛们对食物越来越挑剔,随便拿堆草就能打发她们午饭的日子自然是一去不返了。现在,...原创 2018-08-03 10:37:29 · 170 阅读 · 0 评论 -
BZOJ-1826: [JSOI2010]缓存交换
1826: [JSOI2010]缓存交换时间限制: 10 Sec 内存限制: 64 MB提交: 955 解决: 516[提交][][]题目描述在计算机中,CPU只能和高速缓存Cache直接交换数据。当所需的内存单元不在Cache中时,则需要从主存里把数据调入Cache。此时,如果Cache容量已满,则必须先从中删除一个。 例如,当前Cache容量为3,且已经有编号为10和20的...原创 2018-08-03 00:15:40 · 232 阅读 · 0 评论 -
51nod-1097 拼成最小的数
1097 拼成最小的数 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注设有n个正整数,将它们联接成一排,组成一个最小的多位整数。 例如:n=2时,2个整数32,321连接成的最小整数为:32132,n=4时,4个整数55,31,312, 33 联接成的最小整数为:312313355Input第1行:1个...原创 2018-04-08 19:25:10 · 220 阅读 · 0 评论 -
Codeforces-Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0 - Round 2)-E. Buy Low Sell
思路:很巧妙的贪心+优先队列。对于每天的股票,可以预先将其加入优先队列Q(小的优先),只要遇到较大的就卖掉,但是不一定是最终卖出价格,例如 3 6 7 12,按照贪心 以3买6卖,7买13卖的收入为8 ,但以 3买7卖,6买12卖则为10,因此可以将a[i]入两次队列,这样就可以通过两个6来达到最佳收入10。Code :#include<iostream>#includ...原创 2018-08-02 21:36:26 · 277 阅读 · 0 评论 -
POJ-1328-Radar Installation
地址 :http://poj.org/problem?id=1328思路 :贪心,首先将所有点安装x由小到大排序,再找覆盖当前点的圆的最右圆心,等当前的圆包含不了当前的点就找一个新的圆,一直这样遍历,开始我是直接找当前点的最右圆心,结果一直WA,然后发现这样更新圆心是不对的,例如 遍历时先查询绿点,它的圆心在x1,再遍历到蓝点时发现x1包含不了蓝点,这样的结果就是要2个圆,但是以x2为...原创 2018-08-20 11:23:54 · 395 阅读 · 0 评论 -
2017年湖南省第十三届大学生计算机程序设计竞赛-D Tian Ji's Horse Race Again
地址:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=2000思路:贪心。对于King的马a[n]和Tian的马b[n],交换的k匹马,肯定是取a[n]的最大值和b[n]的最小值交换,那么对于a[],b[]的比较排列是固定的,因此主要怎么求赢得次数,由于a,b都是由小到大排序的,因此可以先求出对于b[i]至少要交换多少匹马才能够使得b[...原创 2018-08-23 15:30:33 · 607 阅读 · 0 评论 -
Codeforces Round #377 (Div. 2)-D. Exams
地址:http://codeforces.com/contest/732/problem/D思路:开始我考虑从头开始遍历,发现这样根本行不通,然后从后考虑发现是可以判断是否可以考完全部课程,而n<=10^5,因此可以二分答案来求解。 在二分答案 h 时,首先将 sp=所有考试所需要的休息天数和,s=考试课程数,p=0,由a[h]到a[1]遍历,当发现有一门课 t 没有考时,sp-=休...原创 2018-08-20 18:28:23 · 134 阅读 · 0 评论 -
51nod-1125 交换机器的最小代价
地址:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1125思路:所有机器a[]保存下标由小到大排序,对于不在其正确位置的数就需要改变位置,那么肯定是从最小值开始交换,若最小值a1不在其正确位置,那么它肯定是占了别人的位置,因此与其交换,这样一直到a1也在其正确位置为止,这样一直都是a1在和别人交换,因此代价是最...原创 2018-08-31 17:11:57 · 268 阅读 · 0 评论 -
牛客练习赛26-C 城市规划
地址:https://www.nowcoder.com/acm/contest/180/C思路:这题要用O(n)的复杂度+读入优化才不会超时。对于线段[L,R],将右端点标记,同时保存以点R为右端点的线段的最大左端点值Max[R]由小到大遍历所有城市,同时用 l 表示已断开的城市的最大值,在遇到城市i被标记时,判断Max[R]与l的大小,若Max[R]大于l,则说明还有路径没有...原创 2018-09-08 19:39:05 · 288 阅读 · 0 评论 -
BZOJ-2460: [BeiJing2011]元素
2460: [BeiJing2011]元素Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 2485 Solved: 1292[Submit][Status][Discuss]Description 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔法矿石炼制法杖的技术。那时人们就认识到,一个法杖的法力...原创 2018-09-13 15:37:20 · 199 阅读 · 0 评论 -
Codeforces Round #515 (Div. 3)-F. Yet another 2D Walking
地址:http://codeforces.com/contest/1066/problem/F思路:贪心+DP:对于同一层的点,最佳的路线是从一端0走到另一端1,只要的选择是两层间的走法,只有四种走法,分别是从一层两端到另一层两端的走法。因此先求出所有层的步数,在用dp[i][j]来表示到第i层时在j端时的最小步数Code:#include<iostream>#in...原创 2018-10-17 21:06:32 · 399 阅读 · 0 评论 -
AtCoder-Dwango Programming Contest V-B - Sum AND Subarrays
地址:https://dwacon5th-prelims.contest.atcoder.jp/tasks/dwacon5th_prelims_b思路:贪心,首先将n*(n-1)/2个数求出来,在从高位开始遍历,若当前位为1的个数>=k,则将当前位为0的全部删除掉,同时ans加上当前位的值。Code:#include<iostream>#include<...原创 2018-12-01 01:41:23 · 318 阅读 · 0 评论 -
Educational Codeforces Round 64 (Rated for Div. 2) 题解A-E
地址:http://codeforces.com/contest/1156做了前3题,好不容易可以上分,结果不评分,有点难受。。A. Inscribed Figures思路:题目有点长。。,然后看了一半就直接看样例了(还是样例容易看懂),wa了一次,注意 3-1-2的情况有一个点是重合了Code:#include<iostream>#include&...原创 2019-05-02 18:10:40 · 366 阅读 · 0 评论 -
Codeforces Round #560 (Div. 3)-题解
地址:https://codeforces.com/contest/1165A. Remainder思路:后x位中,其中只有后第y+1位为1,其余全是0才是合法,因此根据这个来判断后x位不合法的个数即可Code:#include<iostream>#include<algorithm>using namespace std;typedef long ...原创 2019-05-16 13:32:57 · 211 阅读 · 0 评论 -
51nod-1255 字典序最小的子序列
思路:贪心,迷之栈用法,对于字符,肯定是把小的字符排在前面,因此可以用栈来记录串,用pre[]记录a-z出现的最后位置,将第一个字符s[0]入栈,遍历字符串S:若字符s[i]已入栈,则不做处理;若还没入栈,则对s[i]与栈顶字符比较:若s[i]比栈顶字符大,则直接入栈,若s[i]比栈顶字符小,按照贪心应该考虑将s[i]放在前面,因此判断栈顶元素在s[i]后面是否还有,若有则将栈顶元素出...原创 2018-08-01 23:40:28 · 843 阅读 · 0 评论 -
51nod-1391 01串
思路:贪心+前缀和 利用预处理计算出以字符串S[i]为中断点时,往前0比1多的最大长度以及往后1比0多的最大长度,这样遍历S即可得到最长子串长度。求S[i]时往前时0比1多的最大长度 Len,可先求前缀和,将‘1’作为1,‘0’作为-1处理, 当前缀和 l[i]=k,要0比1多,当 k<0时len=i+1, 当 k>=0时 则需要找到最早满足l[i]-l[j]<...原创 2018-08-06 10:24:15 · 329 阅读 · 0 评论 -
牛客-埃森哲杯第十六届上海大学程序设计联赛-A-Wasserstein Distance
链接:https://www.nowcoder.com/acm/contest/91/A来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld题目描述 最近对抗生成网络(GAN)很火,其中有一种变体WGAN,引入了一种新的距离来提高生成图片的质量。这个距离就是Wasserstein距离,又名铲土...原创 2018-04-15 19:50:46 · 310 阅读 · 0 评论 -
守望者的逃离-dp/贪心
题目描述恶魔猎手尤迫安野心勃勃.他背叛了暗夜精灵,率深藏在海底的那加企图叛变:守望者在与尤迪安的交锋中遭遇了围杀.被困在一个荒芜的大岛上。为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会沉下去,到那时,刀上的所有人都会遇难:守望者的跑步速度,为17m/s, 以这样的速度是无法逃离荒岛的。庆幸的是守望者拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点。守望者的魔法...原创 2018-03-08 19:29:14 · 372 阅读 · 0 评论 -
牛客-购物(DP/贪心)
购物时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K64bit IO Format: %lld题目描述在遥远的东方,有一家糖果专卖店。这家糖果店将会在每天出售一些糖果,它每天都会生产出m个糖果,第i天的第j个糖果价格为C[i][j]元。现在的你想要在接下来的n天去糖果店进行选购,你每天可以买多个糖果,也可以选择不买糖果,但是最多买m个。(因为最多只生...原创 2017-12-16 15:33:54 · 660 阅读 · 1 评论 -
51Nod-1050-循环数组最大子段和
1050循环数组最大子段和基准时间限制:1秒 空间限制:131072KB 分值:10难度:2级算法题收藏关注N个整数组成的循环序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续的子段和的最大值(循环序列是指n个数围成一个圈,因此需要考虑a[n-1],a[n],a[1],a[2]这样的序列)。当所给的...原创 2017-12-14 00:58:29 · 354 阅读 · 0 评论 -
51Nod-1091-线段的重叠
1091 线段的重叠基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注X轴上有N条线段,每条线段包括1个起点和终点。线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]。给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长的。输出这个最长的距离。如果没有重叠,输出0。Input第1行:线段的数量N(2 <...原创 2017-11-18 21:02:14 · 487 阅读 · 0 评论 -
51Nod-1288-汽油补给
1288 汽油补给题目来源: Codility基准时间限制:1 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 收藏 关注有(N+1)个城市,0是起点N是终点,开车从0 -> 1 - > 2...... -> N,车每走1个单位距离消耗1个单位的汽油,油箱的容量是T。给出每个城市到下一个城市的距离D,以及当地的原创 2017-11-01 11:21:13 · 547 阅读 · 0 评论 -
51Nod-1117-聪明的木匠
1117 聪明的木匠题目来源: 河北大学算法艺术协会基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注一位老木匠需要将一根长的木棒切成N段。每段的长度分别为L1,L2,......,LN(1 木匠发现,每一次切割花费的体力与该木棒的长度成正比,不妨设切割长度为1的木棒花费1单位体力。原创 2017-10-31 16:26:15 · 350 阅读 · 0 评论 -
51Nod-1428-活动安排问题
1428 活动安排问题基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室? Input第一行一个正整数n (n <= 10000)代表活动的个数原创 2017-10-30 19:46:52 · 388 阅读 · 0 评论 -
51nod-1099 任务执行顺序
1099 任务执行顺序 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注有N个任务需要执行,第i个任务计算时占R[i]个空间,而后会释放一部分,最后储存计算结果需要占据O[i]个空间(O[i] < R[i])。例如:执行需要5个空间,最后储存需要2个空间。给出N个任务执行和存储所需的空间,问执行所有任务最少需要多少空间。Input第1行:1个数N...原创 2018-04-04 09:25:00 · 157 阅读 · 0 评论 -
51nod-1127 最短的包含字符串
1127 最短的包含字符串 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注给出一个字符串,求该字符串的一个子串S,S包含A-Z中的全部字母,并且S是所有符合条件的子串中最短的,输出S的长度。如果给出的字符串中并不包括A-Z中的全部字母,则输出No Solution。Input第1行,1个字符串。字符串的长度 <= 100000。Output输出...原创 2018-04-13 22:06:58 · 349 阅读 · 0 评论 -
51nod-1625 夹克爷发红包
1625 夹克爷发红包 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注在公司年会上,做为互联网巨头51nod掌门人的夹克老爷当然不会放过任何发红包的机会。现场有n排m列观众,夹克老爷会为每一名观众送出普通现金红包,每个红包内金额随机。接下来,夹克老爷又送出最多k组高级原创 2018-04-19 18:44:34 · 217 阅读 · 0 评论 -
51nod-1390 游戏得分
思路:贪心+大胆猜想+推理,首先判断是否合法,第i盘得2*i-1,即为1,3,5,7,9...,2*i-1 这样两者分数和为 i*2,因此当a+b不是平方数时则不合法,而当a=2或b=2也不合法(全部分数只有一个1)然后对a进行推理,由于相邻盘得分相差2,因此小的分数可以转换为大的分数,即 {2i-1,2j-1}可以转换为 {2(i-1)-1,2(j+1)+1},例如{3,5}可以转换为{...原创 2018-08-04 10:40:47 · 218 阅读 · 0 评论 -
Codeforces Round #401 (Div. 2)-E. Hanoi Factory
题目地址:http://codeforces.com/contest/777/problem/E思路:贪心+单调栈。对于塔的建造,a[j]放在a[i]上面必须是 内环a[i].l<a[j].r<a[i].r 外环,可以先将a[n]按照外环r由大到小排序,当r相同时,由塔建造条件可知应该将 内环l小的放在上面,因此r相同时,l大的排在前面。遍历a[i],将建造塔的a[i]放入...原创 2018-08-03 16:35:39 · 173 阅读 · 0 评论 -
51nod-1163 最高的奖励
1163 最高的奖励 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注有N个任务,每个任务有一个最晚结束时间以及一个对应的奖励。在结束时间之前完成该任务,就可以获得对应的奖励。完成每一个任务所需的时间都是1个单位时间。有时候完成所有任务是不可能的,因为时间上可能会有冲突,这需要你来取舍。求能够获得的最高奖励。Input第1行:...原创 2018-07-25 15:56:33 · 228 阅读 · 0 评论 -
Codeforces- Educational Codeforces Round 44 (Rated for Div. 2)-A B C D
Codeforces- Educational Codeforces Round 44 (Rated for Div. 2)A-Chess PlacingCode A:/*思路:对于给定的数组a[],要求把其全部改成1-n的 奇数或偶数,开始题目没看清楚,一直想不明白怎么装换,比赛完后才发现是固定给出n/2个数。。。,因此是要把1-n中的所有奇数或偶数全部占满,则只要分别计算奇数偶数的移动...原创 2018-05-22 19:48:15 · 237 阅读 · 0 评论 -
51nod-1093 骆驼和香蕉
1093 骆驼和香蕉 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注一只骆驼每次最多负重K只香蕉,而它每走1公里要吃掉1只香蕉,不吃完不肯走。现在这只骆驼要去到N公里以外的地方,如果N > K,那么即使骆驼装满了香蕉,也无法1次走到目的地,不过骆驼可以在中途设置一些补给点,先把一些香蕉运过去,下次经过时可以在这些地方进行补给。这样一来便能走到距...原创 2018-05-15 19:30:02 · 317 阅读 · 0 评论 -
牛客-中南林业科技大学第十一届程序设计大赛
牛客-中南林业科技大学第十一届程序设计大赛A-译码思路:用string a[]数组来保存编码所对于的字符串,对于所给的数字串将其每5个转换为编码即可。Code A:#include<iostream>using namespace std;const int MAX_N=20005;const int MAX_M=1005;int T,n,m;string a[MAX_N]...原创 2018-05-20 21:30:19 · 315 阅读 · 0 评论 -
51nod-1205 流水线调度
1205 流水线调度 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注N个作业{1,2,…,n}要在由2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为a[i]和b[i]。你可以安排每个作业的执行顺序,使得从第一个作业在机器M1上开始加工,到最后一个作业在机器M2上加工...原创 2018-05-10 10:33:04 · 281 阅读 · 0 评论