思维-------------------------
文章平均质量分 50
Toooooocold
这个作者很懒,什么都没留下…
展开
-
HDU 6020 MG loves apple
枚举每个非零点i为最高位,判断剩余的数中能不能删出符合 (0*a+1*b+2*c)%3==sum(剩余数之和)%3 && a+b+c==k-i 的情况对于n==k+1的情况需要特判,只有一个0属于合法情况,虽然比赛的时候没过...拿这个hack了好多人#include#define pb push_back#define fr first#define sc secondu原创 2017-04-03 16:25:27 · 898 阅读 · 0 评论 -
UVALive 6748 2D-Solar System
按照初始位置排序,那么答案必定小于等于相邻两个圆相切的情况。 注意到对于一个圆,令左端离他最近的半径比他大的圆的位置为L,右端离他最近的半径比他大的圆的位置为R,这个圆只会受到L到R这段区间的影响。 所以维护一个半径单调递减的栈即可。原创 2017-08-14 23:01:49 · 217 阅读 · 0 评论 -
AtCoder 080E Young Maids
与题意相反,从左往右进行构造。 注意到对每一段区间[L, R]选取最小对{x, y}时,x必须处于与L同奇偶性的位子,而y必须处于与x奇偶性相反的位子。选取最小的x以及最小的y可以用两个RMQ维护原数组,奇偶各一个。 当选完一对{x, y}时,区间分裂为[L, pos[x]-1], [pos[x]+1, pos[y]-1], [pos[y]+1, R]三个区间,可以用优先队列进行BFS,保证字典原创 2017-08-06 22:52:57 · 1028 阅读 · 0 评论 -
AtCoder 079D Decrease
注意到对于{0, 1, 2..., n-2, n-1}这个序列,可以从左至右进行无限次反向操作,那么只要对K%50进行单独处理就可以了。代码:#include#define fi first#define se second#define pb push_back#define CLR(A, X) memset(A, X, sizeof(A))using namespac原创 2017-07-30 14:32:06 · 313 阅读 · 0 评论 -
UVALive 4950 Selling Land
在维护高度递增的单调栈中,同时维护周长递增(这一点是很容易证明的),就可以用O(n^2)的复杂度解决了。代码:#include#define fi first#define se second#define pb push_back#define lson o<<1#define rson o<<1|1#define CLR(A, X) memset(A, X, siz原创 2017-07-11 14:26:22 · 259 阅读 · 0 评论 -
Codeforces 862C Mahmoud and Ehab and the xor
Problem:Problem:Problem: 找nnn个不同的且小于等于1e6的数使得异或和等于xxx(n<=1e5,x<=1e5)(n<=1e5,x<=1e5)(nIdea:Idea:Idea: n>2n>2n>2时选择1∼n−31∼n−31\sim n-3, 1<<181<<1811<<191<<原创 2017-09-20 17:05:02 · 283 阅读 · 0 评论 -
CodeForces Gym101147F Bishops Alliance
2016-2017 ACM-ICPC, Egyptian Collegiate Programming Contest (ECPC 16)原创 2017-11-29 11:36:51 · 193 阅读 · 0 评论