贪心
mengbi_er
一个蒟蒻JLoier
展开
-
Codeforces Round #421 (Div. 2) C. Mister B and Boring Game
题目大意按字母表顺序给出一个初始字符串s,长度为a,你可以任意添加b个字符,之后你的对手将加入a个不同的长度为a的后缀中未出现的字符(字典序加入),询问从l到r中最少出现几个不同字符。题解将前a个字符写出,我们可以发现,只有自己写出前面出现过的字符,对手写出的新字符个数才能尽可能少。而为了让区间中不同字符个数少,我们应写相同的字符,由于对手只写后a字符中未出现的字符,所以每次写的字符应是当前最后一个原创 2017-06-28 01:53:53 · 534 阅读 · 0 评论 -
Codeforces Round #451 (Div. 2) E. Squares and not squares
题目大意每次给一个数加一或减一,问最小操作次数使一半是完全平方数一半不是。题解显然只需要将多的一部分变成少的一部分,贪心选需要操作次数最少的。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int read(){ ch原创 2017-12-16 22:41:07 · 241 阅读 · 0 评论 -
Codeforces Round #440 (Div. 1) A. Maximum splitting
题目大意将一个数分解成若干合数的和,问最多分解成多少个。题解贪心用4,6,9来组合,%4=1需要一个9,%4=2需要一个6,%4=3需要一个6一个9,剩下都用4.#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=原创 2017-10-16 07:20:32 · 204 阅读 · 0 评论 -
bzoj1691: [Usaco2007 Dec]挑剔的美食家
按价格讲草和牛排序,维护一个以美味度为关键字的平衡树,不断枚举牧草,插入比牧草价值低的牛,之后用平衡树选择前驱并删除。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0;原创 2017-10-08 22:30:40 · 219 阅读 · 0 评论 -
Codeforces Round #430 (Div. 2) D. Vitya and Strange Lesson
题目大意每次对数组异或一个值,求数组的mex(没在数组出现的最小非负整数)题解对所有数建一棵二进制trie树,记录修改的二进制位,贪心选择,如果修改的状态在原数组中没出现过,则之后的二进制位都可以与答案相同(即结果为0),如果当前节点子树没满,则可以与当前修改状态相同,否则只能与修改相反。(我好弱啊模板题调1小时)#include<iostream>#include<cstdio>#includ原创 2017-08-30 15:04:13 · 240 阅读 · 1 评论 -
Codeforces Round #433 (Div. 2) D. Jury Meeting
题目大意所有人要去0号城市,并且只坐飞机,飞机只有去0的和从0出发的,所有人要呆k天,问最小机票花费。题解对去的和返回的飞机分类排序,去的从早到晚,回来的从晚到早,处理每个时间上所有人去0的最小代价(由于排好序,所以选择时选的是时间最小的),从晚到早选返回的,所有人都满足时算一下代价,最后找出代价最小值。#include<iostream>#include<cstdio>#include<cst原创 2017-09-07 14:28:07 · 218 阅读 · 0 评论 -
Codeforces Round #433 (Div. 2) C. Planning
题目大意飞机延误k分钟,每分钟只能起飞一架,每架飞机每晚一分钟有个代价,求最小代价。题解显然前k分钟代价不可避免,直接加入优先队列,其余的先加入优先队列并取出队首。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;int read原创 2017-09-07 14:20:05 · 235 阅读 · 0 评论 -
Codeforces Round #433 (Div. 2)B. Maxim Buys an Apartment
题目大意一个有基佬气息的人想让他左或有有邻居,知道邻居数,但不知道位置,求最少和最大能选几个位置。题解显然k=0 ans:0,0 k=n min=0; else min=1; max=max(n-k,2*k)(一个邻居有两个位置)。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using na原创 2017-09-07 14:16:17 · 204 阅读 · 0 评论 -
bzoj2006: [NOI2010]超级钢琴
维护前缀和,用线段树维护距离一个点[L,R]的最大值,并记录左右区间限制,将它加入优先队列,当取出一个点时,加入[L,where-1]和[where+1,R]两个值,记录左右限制。具体细节看代码。(写的不可读QAQ)#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>usi原创 2017-09-04 14:46:16 · 254 阅读 · 0 评论 -
AIM Tech Round 4 (Div. 2) A. Diversity
题目大意改变最小元素个数是总种类数大于K。题解贪心选就行了。注意特判。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0; while(ch<'0'||ch>'9') c原创 2017-08-25 07:52:32 · 260 阅读 · 0 评论 -
bzoj4029: [HEOI2015]定价
尽量让末尾多0。判断能不能是5. 附黄学长代码(其实是我写挂不想改QAQ)。#include<set>#include<map>#include<ctime>#include<queue>#include<cmath>#include<cstdio>#include<vector>#include<cstring>#include<cstdlib>#include<iostrea转载 2017-06-26 14:47:57 · 326 阅读 · 0 评论 -
bzoj3850: ZCC Loves Codefires
贪心,按Ei/Ki从小到大排序#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct ti{ double tim; double lose; double value;}a[1000005];int cmp(ti x,ti原创 2017-06-13 21:30:49 · 255 阅读 · 0 评论 -
Codeforces Round #451 (Div. 2) D. Alarm Clock
题目大意删去最少的点使没有连续的长度m的一段有超过k个点。题解从前到后找,有一个时刻不符合条件就把当前点删掉,显然这样是最优的。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;int read(){ char ch=g原创 2017-12-16 22:45:05 · 253 阅读 · 0 评论