
CF
文章平均质量分 65
YiPeng_Deng
这个作者很懒,什么都没留下…
展开
-
CF1528F AmShZ Farm
CF1528F我们要求∑j≤icj≥i\sum_{j\le i}c_j\ge i∑j≤icj≥i的n!∏ci!\frac{n!}{\prod c_i!}∏ci!n!的和。打表发现答案为(n+1)n−1(n+1)^{n-1}(n+1)n−1,考虑这是一个n+1n+1n+1个点的无根树的方案,考虑怎么将答案与一棵树构造一个双射。有一个很神奇的构造,我们有一个以1为根的大小为n+1n+1n+1的有标号无根树,我们在上面dfs,先走编号小的儿子,将走过每一个点的儿子个数写成一个序列,可以得原创 2021-07-10 15:40:10 · 217 阅读 · 0 评论 -
CF1534简要题解
CF1534A:二分图染色。B:贪心将单独的一列往下减。C:并查集。D:先询问一次,然后选择奇数层或偶数层的点询问相邻的即可.E:先钦定所有都是1,然后需要变成0,每一次选择尽量多的1变为0,不够的用0来补充,贪心下去即可。或者DP,设fif_ifi表示iii个111要操作多少次得到,可以将fj,fkf_j,f_kfj,fk转移到fj+k−2if_{j+k-2i}fj+k−2i,然后倒着模拟回去即可。F主要需要简化模型之后发现性质。显然建图之后tarjan缩点,然后需要在DAG原创 2021-06-17 16:30:26 · 297 阅读 · 0 评论 -
CF1515I Phoenix and Diamonds
Description传送门Solution假设手上有resresres的空间,考虑每一次让resresres减半,做logloglog次即可。考虑减半的过程,不以res/2res/2res/2为边界,而是以2k2^k2k为边界,从大到小枚举kkk,将[1,2k][1,2^k][1,2k]设为轻物品,(2k,2k+1](2^k,2^{k+1}](2k,2k+1]设为重物品,不妨假设res≤2k+1res\le2^{k+1}res≤2k+1,需要贪心选使得res≤2kres\le2^kres≤2原创 2021-05-05 21:53:48 · 420 阅读 · 0 评论 -
CF1517简要题解(Contest 2050 and Codeforces Round #718 (Div. 1 + Div. 2))
CF1517A/B略C赛时打了一个正确性说不明白的做法。一个优秀的做法是按照对角线一条一条求,找到当前对角线上的剩余次数1,在1上面的往下扩展,在1下面的往左扩展,可以发现这样是唯一的。D可以发现走k/2k/2k/2步之后原路返回即可,因此不需要记录终点,直接记录起点为DP状态即可。E最终的样子为(P)CC..C+PC∗n+PP..P(C)(P)CC..C+PC*n+PP..P(C)(P)CC..C+PC∗n+PP..P(C)或PP..PCC..CPP..PCC..CPP..原创 2021-04-25 14:59:53 · 375 阅读 · 0 评论 -
【CF1503】 Codeforces Round #712 (Div. 1) 简要题解
CF1503A:先判奇偶性,对于相同的位置前面全部左括号,后面全部右括号,对于不同的位置,左右括号交替放,保证较小的那个尽量大。B:按照格子x+yx+yx+y的奇偶性填1、2,1、2中总有一个先填满,剩下的随便填。C:首先起点随意,然后按照aaa排序,注意到只有从小的到大的有贡献,因此要找到一个子序列使得从111跳到nnn总和最小,再从nnn往小跳。D:不妨考虑aaa上升,bbb下降,先把最大值填进去bbb开头,同时会向aaa的开头填入vvv,那么对于所有x<vx<vx<v还没有原创 2021-04-06 21:31:58 · 306 阅读 · 0 评论 -
CF1028G Guess the number
Description传送门Solution首先考虑一下为什么能够查询到一个101610^{16}1016的数。对于一个区间[l,r][l,r][l,r],我们最多查询min(l,1e4)min(l,1e4)min(l,1e4)个数,一开始只能够查询一个数(避免个数太多),显然如果查询出来是在mid+1mid+1mid+1后,我们之后可以使用的个数就更多了,因此感受一下第一次操作前一半很短,后一半很长,关键是怎么求出这个长度。不难想到一个dp,计f[l][c]f[l][c]f[l][c]为以原创 2020-12-17 22:42:59 · 211 阅读 · 0 评论 -
CF1375G Tree Modification
Description传送门Solution做法:直接黑白染色,取颜色少的点数减一即为答案。考虑当我们确定根之后,每一次选择的移动节点aaa如果往它的儿子连或它的兄弟连是不优的。因此我们每一次都是尽量往上面跳两个节点。再考虑简单的一条链的时候,深度为奇数的点必须要往上面跳一次,深度为偶数的点跟着深度为奇数的点往上跳,从下往上做。如果操作一个深度为偶数的节点,会使得深度为偶数的节点增多,而最后到了根节点下面的时候深度为偶数的节点是要一个一个操作的,所以不优。可以证明的是即使中间选择了奇数节点,原创 2020-12-16 22:18:15 · 196 阅读 · 0 评论 -
CF1450E Capitalism
Description传送门Solution差分约束的裸题,太久没有做差分约束导致我完全忘记了这个东西。首先如果有奇环显然不行,因此这是一个二分图。au=av+1a_u=a_v+1au=av+1可以写成au≤av+1,au≥av+1a_u\le a_v+1,a_u\ge a_v+1au≤av+1,au≥av+1。∣au−av∣=1|a_u-a_v|=1∣au−av∣=1可以写成av−1≤au≤av+1a_v-1\le a_u \le a_v+1av−1≤au≤av+1原创 2020-12-09 22:36:18 · 271 阅读 · 0 评论 -
CF1427F Boring Card Game
Description传送门Solution居然是一道贪心/构造题。首先不考虑轮流选择的限制,那么显然我们可以把能够删的删去,不断重复。实际上这个也可以写成栈的形式。现在再来考虑一下轮流选择的时候,如果我们用栈的形式,显然可以贪心地构造一棵树出来,只需要每一次选择叶子并保证剩下至少一个属于后手的根即可。可以证明的是,由于个数是一样的,并且保证至少有一个属于后手的根(即有解),讨论一下即可知道选择叶子一定是可行的。#include<cstdio>#include<cs原创 2020-12-04 15:40:13 · 501 阅读 · 0 评论 -
CF1451F Nullify The Matrix
Description传送门Solution很奇妙的nim游戏。我们不妨先考虑特殊情况,如果只有一条对角线上有的话,那就是一个nim游戏,每一次只能选择一个位置减去任意的值,因此我们将它们xor起来得到s。但是如果有很多条对角线呢?注意到一个i+ji+ji+j较小的对角线可以任意修改所有i+ji+ji+j大于它的对角线,我们不妨将每一条对角线的s当做一个整体。由于最终状态所有的s都是0,只要一开始所有s都是0,那么不管先手怎么改,后手都可以找到最前面的1的位置,修改之后的对角线,使得所有的原创 2020-11-27 21:28:37 · 270 阅读 · 0 评论 -
CF1446E Long Recovery
Description传送门Solution玩了一段时间觉得可以直接模拟,全部涂成黑色,然后再全部变成白色,BFS即可???好吧,除了样例什么都过不去。因为有一种特殊的情况:并不一定要先补上那个空白,而是可以先右上的删去,再加入空白,再把右上加入,可以白嫖一次。那么我们只需要把这种情况判断掉就好了!!!好吧,到底应该怎么判,答案怎么计算还有重新想一想。我们可以从中定义一个势能ϕ\phiϕ,即相邻的块不同的个数,那么每一次翻转一个格子会根据旁边有三个不同还是两个不同而使得ϕ\p原创 2020-11-19 21:40:26 · 315 阅读 · 0 评论 -
CF1439D INOI Final Contests
Description传送门Solution首先两个段在不相交的时候是互相独立的,可以直接用fn,gnf_n,g_nfn,gn表示长度nnn的方案数以及答案的和,转移要么是新加点在左边或右边,要么合并两个段,可以O(n2)O(n^2)O(n2)简单计算。然后直接O(n3)O(n^3)O(n3)可以把段合并在一起,这样总的时间复杂度就是O(n3)O(n^3)O(n3)的了。实际上可以做到O(n2)O(n^2)O(n2):考虑后面的n3n^3n3的卷积,我们用生成函数表示出来:设f(x),原创 2020-11-18 22:43:47 · 552 阅读 · 2 评论 -
CF1439E Cheat and Win
Description你有一个坐标范围在[0,1e9][0,1e9][0,1e9]的网格图,设所有的满足x&y=0x\&y=0x&y=0的点(x,y)(x,y)(x,y)为好的点,易证好点形成了一棵树,我们以(0,0)(0,0)(0,0)为根,给出mmm个好点点对(u,v)(u,v)(u,v)并把它们之间的路径上的点染为黑色。现在A和B在玩游戏,A先手,每一次可以选择一个黑点以及它的祖先链的一个可空子集,将它们反色,最后不能操作的输。B现在想通过修改若干次使得自己必胜,每一次原创 2020-11-18 16:33:46 · 497 阅读 · 0 评论 -
CF1438D Powerful Ksenia
Description给你一个数组aaa,大小为nnn,每一次可以选择一个三元组(i,j,k)(i≠j≠k)(i,j,k)(i\neq j\neq k)(i,j,k)(i=j=k),然后将ai,aj,aka_i,a_j,a_kai,aj,ak赋值为ai xor aj xor aka_i\ xor\ a_j\ xor\ a_kai xor aj xor ak求一个方案使得在nnn步之内将使得aia_iai原创 2020-11-14 11:48:40 · 642 阅读 · 1 评论 -
CF1442D Sum
Description给你nnn个栈,你需要对于每一个栈,从前往后选择若干个,栈中每一个元素有一个贡献,问选择kkk个的最大贡献是多少。n≤3000,∑c≤1e6,k≤3000n\le3000,\sum c\le1e6,k\le3000n≤3000,∑c≤1e6,k≤3000Solution首先考虑单调性,不可能同时有两个栈没有选择完,因为如果有ai>bja_i>b_jai>bj,一定有ai+1>bj−1a_{i+1}>b_{j-1}ai+1>bj−1原创 2020-11-04 08:31:43 · 489 阅读 · 2 评论 -
CF504E Iron Man
CF504E Iron Man一个边权为111的nnn个点的树上有mmm个人在运动,第iii个人从viv_ivi以cic_ici的速度在tit_iti时刻出发前往uiu_iui求最早什么时候有两个人相遇(可以在边上)。n,m≤1e5n,m\le1e5n,m≤1e5。Solution首先树剖,变成链上的问题。如果以时间为横坐标,深度为纵坐标,那么一个运动的人就是一条线段,现在要求若干条线段最早在什么地方相交。显然一条线段相交的线段是在它加入的时候距离它最近的,否则在更早原创 2020-10-23 19:20:11 · 167 阅读 · 0 评论 -
CF1368E Ski Accidents
CF1368E Ski Accidents给一个每一个点出度不大于2的有向无环图。你需要删除最多47n\frac{4}{7}n74n的点以及跟它们有关的边,使得最后图中不存在边数大于1的路径。输出任意一组方案。n≤2e5n\le2e5n≤2e5Solution首先47\frac{4}{7}74就很特别,再联系到每一个点的出度最多为2,应该发现这是一个1,2,41,2,41,2,4的满二叉树,我们删去那444个点。这启发我们,如果我们能够将nnn个点分成三个集合A,B,CA,B,CA,原创 2020-10-16 07:34:11 · 185 阅读 · 0 评论 -
CF700E Cool Slogans
CF700E Cool Slogans给定一个字符串 SSS,要求构造字符串序列 s1,s2,…,sks_1,s_2,…,s_ks1,s2,…,sk满足任意sis_isi 都是SSS的子串,且sis_isi在si−1s_{i-1}si−1中出现至少两次。求最大kkk∣S∣≤2e5|S|\le2e5∣S∣≤2e5Solution首先所有的sis_isi的序列都可以缩成sis_isi是si−1s_{i-1}si−1后缀的形式,所以考虑直接在后缀树上进行DP。需要证明一个重要的原创 2020-10-16 07:32:07 · 226 阅读 · 0 评论 -
CF634F Orchestra
CF634F Orchestra给一个r∗cr*cr∗c的矩形,其中有nnn个位置为1,第iii个位置为(xi,yi)(x_i,y_i)(xi,yi),其它地方为0。求有多少个子矩形使得矩形和不小于kkk。r,c,n≤3000,1≤k≤min(n,10)r,c,n\le3000,1\le k\le min(n,10)r,c,n≤3000,1≤k≤min(n,10)Solution考虑对于一个矩形(x1,x2,y1,y2)(x1,x2,y1,y2)(x1,x2,y1,y2)固定y1y1y1原创 2020-10-16 07:29:58 · 176 阅读 · 0 评论 -
CF506C Mr. Kitayuta vs. Bamboos
CF506C Mr. Kitayuta vs. Bamboos有nnn个竹子,第iii棵竹子第一天之前的高度是hih_ihi,每一天的末尾会长高aia_iai每一天你可以将砍kkk刀,每一刀将一个竹子砍ppp,如果砍的竹子高度小于ppp,那么将会被砍到000.求mmm天之后最高的竹子最矮是多少。注意每一天是先砍竹子、再长竹子。n≤1e5,m≤1e4,k≤10n\le1e5,m\le1e4,k\le10n≤1e5,m≤1e4,k≤10,所有读入的数≤1e9\le1e9≤1e9。Soluti原创 2020-10-16 07:28:05 · 198 阅读 · 0 评论 -
CF578F Mirror Box
CF578F Mirror Box有一个n∗mn*mn∗m的网格,每一个格子放一个/或\的镜子(45度),现在从每一个长度为1的整的边界的中间垂直射入一个光线,要求这个光线从一个相邻(有公共点)的单元边界射出,并且要求网格中的任意单元边都有光线穿过。现有一些格子不确定放哪种镜子,求放镜子的方案数使得满足上面的条件。不确定格子数≤200\le200≤200,n,m≤100n,m\le100n,m≤100Solution一道需要灵机一动才能发现的结论题。仔细观察一个合法的镜子的摆放,我们可以发原创 2020-10-15 21:09:49 · 410 阅读 · 0 评论 -
CF573E Bear and Bowling
CF573E Bear and Bowling给定一个长度为 n的序列 a1…na_{1\dots n}a1…n。你要求一个aaa的子序列 b1…mb_{1\dots m}b1…m(可以为空),使得 ∑i=1mibi\sum_{i=1}^m ib_i∑i=1mibi的值最大。n≤105,∣ai∣≤107n\le 10^5,|a_i|\le 10^7n≤105,∣ai∣≤107Solution不同于题解的nn log nn\sqrt n\ log\ nnn&nb原创 2020-10-15 21:02:52 · 310 阅读 · 0 评论 -
CF708D Incorrect Flow
CF708D Incorrect Flow有一个nnn个点mmm条边的网络,源点为111,汇点为nnn,每条边有容量ccc和当前流量fff,但是有可能f>cf>cf>c或流量不平衡。现在可以花费111的代价将某条边的ccc或fff加一或减一。求最小的代价使得这个网络合法。n,m≤100,c,f≤1e6n,m\le100,c,f\le1e6n,m≤100,c,f≤1e6Solution一开始没有注意到ccc也是可以改变的。先建一个超级源和超级汇,仿照上下界可行循环流。考原创 2020-10-15 21:00:05 · 196 阅读 · 0 评论 -
【Codeforces】GoodBye 2019简要题解
传送门七道构造题,外加一道暴力,妙啊! 话说构造题太考验思维了,想不到就没了。A.Card Game直接贪心即可B.Interesting Subarray可以发现当且仅当存在相邻的两个不满足条件时才存在,也就是说任意一个不合法的子段一定有这么一个相邻的位置不合法。C.Make Good因为要求∑ai=2∗(a1 xor a2 xor...ak)\sum a_i=2*(a_...原创 2020-01-11 20:13:08 · 424 阅读 · 0 评论 -
【Codeforces#599】简要题解
这套题目做得我好难受,DE比较神仙,所以还没有做出来Codeforces#599A当两个格子的距离是N的因子(非1)时两个格子颜色相同,求最后有多少个不同颜色的格子(n<=1012)格子的个数就是N的因子的GCD。首先肯定只有N的质因子有用。然后如果N有多个质因子,因为ax+by=gcd(a,b)=1一定有解,所以最小跨越的距离就是1否则如果只有一个质因子,显然就是这个质因子...原创 2019-11-07 20:08:23 · 328 阅读 · 0 评论 -
【Codeforces#596】E. To Make 1
Descripton传送门有n个数不被k整除的数a[i]。每一次选择两个数x,y,删去这两个数并加入f(x+y):f(x)=(xmod k=0)?f(x/k):xf(x)=(x \mod k=0)?f(x/k):xf(x)=(xmodk=0)?f(x/k):x求最后能不能得到1。如果能,输出每一次将哪两个数删去。n<=16,∑a[i]\sum a[i]∑a[i],k<=...原创 2019-10-30 15:49:25 · 363 阅读 · 0 评论 -
【Codeforces#596】D. Tree Factory
Description传送门一个爷爷非空的节点x可以做一个操作:fa(x)=fa(fa(x))给一棵树,求如何将一条链通过最少的操作次数变成这个树,节点编号要完全一致。输出这条链初始的编号,以及操作次数,和每一次操作的节点编号。n<=1e5Solution构造题。思路比较神奇。首先反过来,求树变成链。首先考虑最少的操作次数。从树的深度切入。最初的深度是dep,最终的...原创 2019-10-30 15:25:20 · 299 阅读 · 0 评论