贪心
一种很佛系的思想
为什么他们cf写的这么快
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #631 (Div. 2) - Thanks, Denis aramis Shitov! E. Drazil Likes Heap(贪心+模拟)
题目链接思路:这个题就是阅读理解题,能理解题意的话应该是秒出的那种,着重解释一下题意。题意是给定一棵完全二叉树(共2^h-1个结点),这个二叉树满足大顶堆的性质也就是父亲结点a【i】大于等于儿子结点a【i<<1】和a【i<<1|1】,现在要求你删去(2 ^h-2 ^g)个结点使得完全二叉树变成2 ^g-1个结点,删除结点的要求如伪代码所示。伪代码的意思是:如果当前...原创 2020-04-25 20:52:13 · 227 阅读 · 0 评论 -
Codeforces Round #109 (Div. 2) C. Hometask(贪心)
题目链接思路:每次删的时候贪心的选择数量少的就行了。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e5+1;char s[maxn],str[maxn];int main(){ scanf("%s",s); int len=strlen(s),k,...原创 2020-04-25 20:28:14 · 152 阅读 · 0 评论 -
Codeforces Round #631 (Div. 2) - Thanks, Denis aramis Shitov! C. Dreamoon Likes Coloring(贪心+思维)
题目链接#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e5+5;int p[maxn];int ans[maxn];int main(){int n,m; ll sum=0; scanf("%d %d",&n,&m); int cn...原创 2020-04-05 21:32:57 · 147 阅读 · 0 评论 -
NC50439 tokitsukaze and Soldier(贪心+优先队列)
题目链接题目描述在一个游戏中,tokitsukaze需要在n个士兵中选出一些士兵组成一个团去打副本。第i个士兵的战力为v[i],团的战力是团内所有士兵的战力之和。但是这些士兵有特殊的要求:如果选了第i个士兵,这个士兵希望团的人数不超过s[i]。(如果不选第i个士兵,就没有这个限制。)tokitsukaze想知道,团的战力最大为多少。输入描述:第一行包含一个正整数n(1≤n≤10^5)...原创 2020-03-26 20:15:39 · 162 阅读 · 1 评论 -
Codeforces Round #628 (Div. 2) C. Ehab and Path-etic MEXs(贪心+思维)
题目链接思路:这个题做法貌似很多,我用的就是从叶子节点开始赋值,不过听大佬说的从度大于2的节点赋值也可以。比赛的时候wa test19了,特判一下n=2就行了。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int mod=1e9+7;const int maxn=2e5+1;...原创 2020-03-15 19:47:56 · 146 阅读 · 0 评论 -
Codeforces Round #237 (Div. 2) C. Restore Graph(图论+贪心)
题目链接思路:这是一道披着图论外衣的简单贪心,要想有解首先d【i】=0必须只有一个,其次排序后要满足0 1 2 3.。。这样的如果中断了就无解,当然数很多是没关系的,那么我们就贪心的构造对于d【v】=d【u】+1来说,我们就建边u->v,这个就只是个模拟的过程,最后判断一下每个点的size有没有大于k就行了。#include<bits/stdc++.h>using na...原创 2020-03-17 21:41:30 · 147 阅读 · 0 评论 -
Codeforces Round #598 (Div. 3) E. Yet Another Division Into Teams(字符串+贪心)
题目链接思路:统计每个0移到前面的贡献,当某个0无法移动最前面的时候特殊处理一下它在那个位置,剩余字符直接复制就好了。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e6+1;char s[maxn];int main(){ int T,flag; l...原创 2020-03-10 10:58:38 · 116 阅读 · 0 评论 -
Codeforces Round #584 - Dasha Code Championship G1. Into Blocks (easy version)(贪心)
题目链接思路:我们发现如果一对数间还有其他不同的数的话,那么肯定是要变换的,我们维护一个R数组表示每个数最右边的位置,如果遍历到了当前区间的数的最右端的话根据贪心思想我们肯定是要把其他数全部变换成次数最大的那个数。#include <bits/stdc++.h>#define ll long longusing namespace std;const int maxn=2...原创 2020-02-26 20:49:43 · 141 阅读 · 0 评论 -
Codeforces Round #598 (Div. 3) C - Platforms Jumping(贪心)
题目链接思路:先把所有的木板全都依次靠在右边,当跳d距离没有木板是再把木板移到这个距离,当没有木板可以移动的时候肯定是NO。#include<bits/stdc++.h>using namespace std;const int maxn=2e5+10;typedef long long ll;int c[maxn],ans[maxn],n,m,d,flag=0;in...原创 2020-02-13 21:51:01 · 101 阅读 · 0 评论 -
2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest B. The Feast and the Bus (经典贪心)
题目链接思路:先把k个团队的人数从大到小排序,我们发现s最小是num【1】,那么s最大是num【1】+num【2】?可是我们这样想的话容易被毒瘤数据tle,所以还得优化一下,我们可以想我们最优的方案是不是一辆车每次尽可能答案两个团队,同时人数是不是尽可能的满?所以我们可以枚举max(a【1】+a【k】、a【2】+a【k-1】。。。。),这个才是s的最大值,这样缩小了s的范围以后就可以通过枚举s...原创 2020-02-21 21:36:50 · 334 阅读 · 0 评论 -
2019-2020 ICPC, Asia Jakarta Regional Contest H. Twin Buildings(贪心)
题目链接原创 2020-02-22 21:56:55 · 311 阅读 · 0 评论 -
Codeforces Global Round 6 C - Diverse Matrix(贪心+构造)
题意:构造一个n*m矩阵,是矩阵所有的行,列的gcd的最大值最小。思路:由于每行每列所产生的gcd互不相同,则最好的方案是不是就是gcd的1到n+m?那么我们贪心来构造,把最长的那一行/列构造成gcd为1,然后另一列/行构造成gcd为2(也就是2的倍数),例如行为2,列为5,那么我们就构造成:2 3 5 6 74 ?????号这个地方的话,就让行列两两相乘就行。有点地方要格外注意,就是...原创 2020-01-31 21:10:53 · 188 阅读 · 0 评论 -
Codeforces Round #617 (Div. 3) E1String Coloring (easy vers&&E2. String Coloring (hard version)(贪心)
题意:给你初始字符串,要你给每个字符涂色,规定不同颜色的相邻字符可以交换,问你存不存在一种涂色方式能使字符串变得有序?思路:我们按照贪心的思路,如果我前面有比我大的字符在我前面,我不是不肯定要交换,于是可以遍历比我大的字符,看他们在我前面的最大的编号是多少,然后加1.#include<bits/stdc++.h>using namespace std;const int m...原创 2020-02-05 20:01:25 · 187 阅读 · 0 评论 -
Codeforces Round #611 (Div. 3) E. New Year Parties (贪心)
题目链接题意:给定一个初始序列,规定可以对序列的每个元素进行+1、-1或者不变的操作,一顿操作过后,序列不同元素的个数为X,求x的最大和最小值思路:求最小值容易想,可以先排序再去重,只要有一段元素比如1,2,3是连续且相差为1的肯定可以合并在一起,但是这里有个漏洞,就是比如2 4其实也是可以合并在一起的,把这个条件加上就行。至于求最大值的话,可以先统计每个数的个数,然后枚举每个数,只要左...原创 2020-02-09 11:34:36 · 135 阅读 · 0 评论 -
2019-2020 ICPC, NERC, Northern Eurasia Finals E. Elections(贪心)
题目链接思路:我们枚举每一列,看看把每一列的总和变成最后一列总和相等的删除最小删除数量是多少,最后取数量最少的列就行,这里有个贪心思想,怎样删除才能使对方下降的快,我自己下降的少呢?其实和他们的距离差有关系,我们优先删除距离差较大的那一行。#include<bits/stdc++.h>using namespace std;const int maxn=1e3+10;ty...原创 2020-02-12 21:37:22 · 365 阅读 · 0 评论 -
2019-2020 ICPC, NERC, Northern Eurasia Finals J. Just Arrange the Icons J. Just Arrange th(贪心+数学)
题目链接思路:枚举一下屏幕的大小,如果给定一块屏幕大小的话,需要多少屏幕是容易算的,关键在于怎么判断屏幕大小能不能满足要求,这里给个样例可能容易思考点,如果个数是14,屏幕大小为4的话,你看它行不行,其实是可以的。#include<bits/stdc++.h>using namespace std;const int maxn=2e6+10;typedef long lon...原创 2020-02-12 21:49:13 · 393 阅读 · 0 评论 -
Educational Codeforces Round 76 (Rated for Div. 2) D. Yet Another Monster Killing Problem(贪心+思维)
题目链接思路:解题关键是十天能完成的两天肯定也可以,取最大值。#include<bits/stdc++.h>using namespace std;const int maxn=2e5+10;typedef long long ll;ll u,v,a[maxn],b[maxn];int main(){ int T,n,m; scanf("%d",&T);...原创 2020-02-13 21:47:24 · 127 阅读 · 0 评论 -
Codeforces Round #614 (Div. 2) B - JOE is on TV! (简单贪心)
题意:给定数n,每次减少一个数s,那么会得到s/n的价值,同时n要减去s,问最后能得到的最大价值是多少?思路:贪心即可,答案就是1/n+1/n-1+1/n-2+…1#include <bits/stdc++.h>const int maxn=1e5+1;using namespace std;int main(){ int n; scanf("%d",&n);...原创 2020-01-21 14:53:13 · 113 阅读 · 0 评论 -
Codeforces Round #569 (Div. 2) B - Nick and Array(贪心)
题意:给定一个数组,你可以把数组的一个数ai=-ai-1,每个数只能进行一次这样的变换,问怎样变换后数组的乘积a1a2a3*…an最大,输出变换后的数组思路:因为一个负数经过这样的变换后它的绝对值会变小,正数经变换后绝对值会增大,那么根据贪心思想就要把所有正数变成负数,看看最后乘起来的是正数的话就是最佳答案,但如果不是的话那么就有一个负数是要变成正数的,把谁变成负数代价最大呢?选绝对值最大的...原创 2020-01-21 15:21:16 · 196 阅读 · 0 评论 -
Codeforces Round #607 (Div. 2) B - Azamon Web Services(贪心)
题意:给定字符串s和c,你只有一次机会可以交换字符串s里两个字符的位置,字符串s最终能不能小于字符串c,如果有多种方案,输出任意一种。思路:很显然贪心啊,一开始想着字符串s和c逐个枚举每个字符,如果在i处字符遇到不一样的,就和i后面的最小的字符交换,然后再比较字符串大小。然而这个贪心策略是有问题的。。。。(wa了好几发)你可以思考一下s为AXAY,c为AXAX是不是发现上面的策略有问题了?...原创 2020-01-25 15:37:18 · 142 阅读 · 1 评论 -
Codeforces Round #604 (Div. 2) C - Beautiful Regional Contest(贪心)
题意:给出n个选手的成绩,要给他们按成绩高低颁发金银铜牌,所有奖牌数不得多于参赛者人数的一半,同时金银铜牌都必须颁发,金牌数要小于银牌数和铜牌数,现在要尽可能把奖牌发完,问最佳的金银铜牌颁发方案。思路:很显然贪心,因为题并没有说银牌和铜牌的关系,那么我们就固定金牌数(比如只给最高分的人金牌,好惨。。。),然后给成绩靠后的人发尽可能多的银牌和铜牌。不过话说这题用1e6的num数组就超时。。。...原创 2020-01-28 21:36:12 · 135 阅读 · 0 评论 -
Educational Codeforces Round 81 (Rated for Div. 2) A - Display The Number(简单贪心)
题意:给你上面显示得那个电子板,每个数字所需要得数目都如题目所述,给定X,问能构成得最大的数是多少?思路:贪心就行,尽可能用最少得数目放最大得数字,显然优先考虑1,然后在x是奇数得时候再放7即可。#include <bits/stdc++.h>using namespace std;int main(){ int T,x; scanf("%d",&T); wh...原创 2020-01-31 20:12:15 · 165 阅读 · 0 评论 -
Codeforces Round #609 (Div. 1) A. Long Beautiful Integer(贪心+思维)
题意:构造出一个满足beautiful的数字,要求这个数字最小。思路:要构造出最小的美丽数,我们显示只需对k这个位置的数字动刀就行,str[k]这个数字要么不加,要么就加一,只有这样才能保证一定是最小,那么究竟什么情况下才加一呢?一开始简单的以为只要k+1和第一位比较来判断,但其实这样不严谨。正解应该是先按美丽数的定义构造,然后将它与原数字进行字符串比大小,如果发现按美丽数的定义构造之后比原来...原创 2020-01-08 22:14:36 · 164 阅读 · 0 评论