
贪心
文章平均质量分 74
Neutralzz
这个作者很懒,什么都没留下…
展开
-
ZOJ 3627 Treasure Hunt II (贪心)
水题,不过细节坑死,WA了很多发。。。思路:先从起点不断往两侧走,左端边界lb为max(1LL,p-t),右端边界为min(n,p+t)。如果rb-lb 反之,如果M是偶数,就让两个人从起点分别走M/2步,往后就是先向左再向右还是先向右再向左的问题,枚举就好了。如果M是奇数,两个人中其中一人要走M/2+1步,同样枚举即可。代码:#include#inclu原创 2015-07-19 11:07:56 · 332 阅读 · 0 评论 -
CodeForce 626E Simple Skewness (贪心+三分)
题目:给出n个数字,求出一个子集,使得其平均数与中位数的差值最大。解析:首先将a[1...n]从大到小排序,在固定中位数的位置后,子集的构成必然是在中位数位置的两侧选取相同个,显然,每侧要尽量选取较大的值。可以发现,选取的个数与平均数具有凸函数性质,所以通过三分找到临界点。整体复杂度O(nlogn)。[code]:#includeusing namespace std;co原创 2016-05-31 10:47:46 · 300 阅读 · 0 评论 -
Codeforces 637D Running with Obstacles (贪心)
解析:查看每对相邻的障碍,如果距离大于s,那么可以落地并在下一个障碍前起跳。对每次落地和起跳加以判断即可。[code]:#includeusing namespace std;typedef long long LL;const LL MOD = 1e9+7;int n,m,a[205];LL dp[2][205][1005];void sol(){ int i,原创 2016-05-31 15:55:19 · 338 阅读 · 0 评论 -
Codeforces 645E Intellectual Inquiry (贪心+DP)
解析:假设当前已经放了i个字符,c[p]为当前以p结尾的字符串的个数,sum = c[0] + .... c[25]。在放入第i+1个字符后,应该使sum尽可能大。假设放入的是字符t,那么新的c[t]的值为sum+1(所有串+自己),sum的变化量为1+sum-c[t]。找到最大的变化量,进行更新即可。但是这里有取模的操作,没法求出最大的变化量。所以,贪心的思考,使得变化量最大的那原创 2016-06-01 11:32:47 · 366 阅读 · 0 评论 -
Codeforces 659F Polycarp and Hay (排序+并查集)
解析:将所有的cell按高度从大到小排序,然后每次放入值相同的cell,用并查集维护集合和集合大小,并判断是否满足条件即可。找到后搜索标记所有的位置。[code]:#include#include#include#include#include#define lson l,mid,rt<<1#define rson mid+1,r,rt<<1|1#define lowbit原创 2016-06-01 11:37:26 · 382 阅读 · 0 评论 -
Hdu 5338 ZZX and Permutations(线段树+贪心)
解析:首先用set维护被Cirlcle Notation切开的不连续的各个段。然后从i开始,(p[i]为i的位置)找到其在set中的左右端点,左边的最大值为value_l,右边p[i]+1的值为value_r。若value_l>value_r,则{p[value_l],p[value_l]+1,...,p[i] }为一个CircleNotation,并再用set维护剩下的段。若原创 2016-07-13 20:42:45 · 290 阅读 · 0 评论