L_0_Forever_LF的专栏

曾是一个OIer

AGC002 F - Leftmost Ball

问题相当于计算有n个颜色0的球,其他n-1种颜色各有m-1个球,一个合法的序列是任意一个前缀中颜色0的球的数量>其他颜色的颜色数量 为了方便计数,我们不妨把每个颜色为0的球和一个颜色捆绑,即对于序列中(除了颜色0)出现的第i种颜色,我们将它捆绑到第i个颜色为0的球身上 然...

2018-04-17 20:57:33

阅读数:51

评论数:0

ARC 085

E 最小割模板题不会做系列。 其实问题就是每个数选择保留或者不保留各有一个花费,然后有nlogn个关系形如:如果i不保留,j也一定不能保留 正数的和为总价值,减去最小割就是答案code:#include<set> #include<map> #include<d...

2017-11-16 16:33:04

阅读数:114

评论数:0

AGC 011

A 单调队列贪心B 贪心,排序后找最大的i,使得sum[i]*2< a[i+1]C 用n个点代表行,n个点代表列,对于边(x,y),在行列的x,y之间连边 对于行的每个联通块分开算,对于行的一个联通块,先算其中孤立的点,然后对于列的某个联通块: 手玩后发现如果这个联通块有奇环,在这...

2017-11-07 17:05:08

阅读数:114

评论数:0

ARC 070

C 因为可以原地不动,所以二分找到最小的1+2+….k>=n的k,可以从1~k中去掉多出的,k就是答案D dp前缀和后缀和,用bitset优化转移 对于每个数O(n)判前后缀能不能凑出n-x~n-1的数E multiset删一个值会把这个值的全部都删掉,所以要用指针指后删指针。用f[...

2017-11-04 15:48:28

阅读数:128

评论数:0

AGC 012

A 贪心,最小的n个数肯定分在每个组用来垫,然后从小到大考虑,对于每个数肯定尽量让他成为某组最大的,这样后面比他大的数就有更多成为次大的,肯定比让他成为次大的更优,所以答案就是排序后第n+1,n+3,n+5…3n-1项的和B 倒着处理询问,变成每次将距离点v<=d的所有点中无色的点染色,...

2017-11-02 22:00:27

阅读数:88

评论数:0

ARC 071

C 每个串每个字符弄一下 D 列出每个小矩形贡献的柿子,化简后发现对x,y分别求和后可以O(1)求解E 每次变换对于A-B一定改变3,(感受一下)若两串A-B的差是3的倍数则可以互相变换code:#include<set> #include<map> #includ...

2017-10-26 20:16:04

阅读数:97

评论数:0

AGC 013

A dp B 以1号点为开头任意走走到不能走,再把路径倒过来以1号点为结尾开始再遍历到不能走C 每个蚂蚁编号,相遇时掉头相当于继续走但是交换编号,每个蚂蚁最后的位置是可以知道的,因为编号的相对顺序是不会改变的,所以只要知道1号是哪个蚂蚁就能知道所有的编号在哪里 发现每有1只蚂蚁从l-1顺...

2017-10-26 16:22:14

阅读数:142

评论数:0

ARC 072

C 相邻前缀不相同就是没有0 只有+-+-+-和-+-+-+两种情况,枚举 每个位置加减会改变后面所有前缀和,所以这个位置只要修改到符合符号就行了 D (打表)发现|X-Y|&amp;lt;=1时先手必败 E 记从1开始走到i时刻前距离终点di,发现witch就是把di+1变...

2017-10-25 14:49:22

阅读数:129

评论数:0

ARC 073

C 模拟D 注意到w1<=wi<=w1+3 当w1<=300时,直接做背包 当w1>300时,我们就算每次都取最小的w,最多比每次取最大的w多取一个物品,那么我们可以枚举能取到的物品总数,把w1这个基数减掉,重量变成0~3,做背包 (好吧直接枚举比这样优美很多E ...

2017-10-24 21:45:49

阅读数:169

评论数:0

AGC 014

A 发现当三个数都一样时答案是无穷,否则直接模拟就好了,步数不会太多(可以证明最多log次)B 模型转化,在mod 2意义下,x到y+1,和 根到x+1根到y+1是等效的,所以每个点出现次数都是偶数则有解,否则某些点的父边会是奇数,无解C 一开始走完k步后,可以开k步走k步,相当于图中没有障...

2017-10-24 11:49:20

阅读数:119

评论数:0

CODE FESTIVAL 2017 qual C

A 枚举 B dp C 因为可以添加x,所以我们可以忽略原串中的x,若剩下的串不回文则不合法,否则可以知道最终的回文串的中心是哪个字符,从两边向中间枚举非x的字符,添加x使他们的位置对应code:#include<set> #include<map> #inclu...

2017-10-24 08:36:27

阅读数:129

评论数:0

ARC 074

感觉这场ARC的题目挺适合中国选手…所以好像很多人AK..D 用堆预处理出1~i,i~3N保留N个数的最小和最大和 枚举剩下的2N个数的第N个数E f[r][g][b]表示r,g,b为三种颜色最后出现的位置,i=max(r,g,b),1~i以内的限制都满足,1~i的填色数code:#incl...

2017-10-19 21:03:24

阅读数:143

评论数:0

AGC 015

A 求一下最后和的范围l~r,之间的数都可取到 B 每层楼,如果是往上走的,他到下面的楼层都一定至少2次,到上面的1次,往下走的同理C 每个联通块两两之间只有一条路径,所以每个联通块是树的结构,n块由n-1条邻边连接 那么每条两边都是黑色块的邻边,能且一定能合并两个联通块,减少1个联通块...

2017-10-19 15:06:08

阅读数:150

评论数:0

ARC 075

C 01背包 D 每次攻击,相当于对全体造成B的伤害,选一个怪兽造成A-B的伤害,二分次数x (二分的上界不要定高了不然会爆longlongQWQE 让b[i]=a[i]-k,相当于问b有多少个连续子序列和>=0 (1:枚举右端点,维护每个左端点的答案,可以手写splay每次看&...

2017-10-18 11:09:10

阅读数:84

评论数:0

AGC 016

A 枚举最后整个串是哪个字符,O(n)扫一遍找至少需要操作多少次code:#include<set> #include<map> #include<deque> #include<queue> #include<stack> #inc...

2017-10-17 21:49:30

阅读数:131

评论数:0

ARC 076

C 排列 D 按x排序后贪心建最小生成树E 我们将两个点都在边界的点对称为重要的点对,因为没有重复的点,所以只有重要的点对可以把矩形分成两部分 可以发现,只要重要的点对之间合法,所有点对就一定合法(先将不重要的点对连上再连重要的),从任意点出发顺时针(或逆时针)扫过去维护一个栈,若当前点属于...

2017-10-16 21:20:53

阅读数:137

评论数:0

ARC 077

C 模拟 D 只有2个数是相同的,假设他们的位置是u,v,对于长度k的子序列,重复的情况有Ck−1u−1+n−vC_{u-1+n-v}^{k-1}种,减掉E 考虑把值定为i对n-1次变化花费的减少量之和 对于一次变化l->r, 若l< r,当i∈(l+1,r),能减少i-(...

2017-10-16 21:03:52

阅读数:107

评论数:0

AGC 017

A dpcode:#include<set> #include<map> #include<deque> #include<queue> #include<stack> #include<cmath> #include<...

2017-10-14 11:29:59

阅读数:247

评论数:0

ARC078

C、D略E 玩交互,中途发现看错2次题意…. 这种猜数的交互一般都要二分,所以需要利用他的Y和N二分 先用1e9判N是不是10的若干次方,再用10^k询问找到N的位数,接着可以逐位二分了 注意确定到最后一位的时候要在后面加个0,否则不管最后一位填0~9,答案都会是Y(手测都没发现这个…结果...

2017-10-12 10:58:03

阅读数:113

评论数:0

AGC 018

A 发现组合出的数一定比最大的ai小,且一定是gcd的倍数(可以构造出gcd)code:#include<set> #include<map> #include<deque> #include<queue> #include<stack>...

2017-10-11 16:11:47

阅读数:136

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭