贪心
龙卡卡卡
这个人很懒,连个include都没写
展开
-
cf.Extreme Subtraction(逆向思维)
题目链接题意简化:对于一个序列而言,如果能够操作后全部化为0,那么用该操作的逆操作(全为0的序列上面选k加1)便可以恢复该序列。那么我们就可以把逆操作分为左和右两组,容易看出这两组操作构造出来的序列必然是一个单调不升和一个单调不降。这样,原序列就可以看成是一个单调不升序列和一个单调不降序列的和。这样,我们只需证明原序列是符合该条件的即可。构造思路:要在各位和固定的情况下构造一个单调不升序列和一个单调不降序列,根据贪心的原则,我们肯定得让单调不升序列降低得慢、单调不降序列下降的慢。这样可以给后面的构造原创 2020-11-17 22:01:59 · 211 阅读 · 0 评论 -
牛客 Kabaleo Lite
题目链接题目大意:每次取一部分前缀,使得最后的和最大。分析:每次取前缀的话肯定是取最大的,主要难点在于取的时候的限制性,但是我们发现,取得的前缀长度必然越来越短,所以我们可以想到记录下当前前缀取过的次数chose以及上一次取的位置。而一个位置能否被取到取决于:1.该位置是否是在上一次的位置之前2.考虑到可能该位置会由于菜不够了无法取到,而菜是否足够看的是使得上一次无法取的位置(菜最少的位置)在该位置之前还是之后。而对于这一点,我们可以保存下每个点对应的前缀的菜的最小数量,然后与chose比较即可原创 2020-08-05 23:02:26 · 112 阅读 · 0 评论 -
牛客Harder Gcd Problem
题目链接题意:在1-n的整数中每次选取两个不互质的数,求最多能选多少对?分析:对于两个不互质的数,情况有两种:质数与它的倍数两个相同质数的倍数这两种情况都与一个质数有关,所以可以从每个质数来出发,将它的不同倍数两两配对。(大于n/2的质数必定没得匹配,下面均未考虑)而容易想到,必定得先满足较大的质数,因为如果先取小质数,那么大质数到时候可能就没有匹配了。例如:2和5,如果先取2的各个倍数,10就会被2用掉,如果n=10,5就没有数与他匹配,就用不掉了。而如果从大到小来,每个质数至少有自原创 2020-07-25 11:35:14 · 112 阅读 · 0 评论