随笔分类 - 题解-codeforces
摘要:牛B题 首先因为n>=2,可以发现后手必胜: ① 当n为偶数时,后手跟着先手走对称,按照n和1的分界线作为对称轴,位置对称+棋子反转 ② 当n为奇数时,设先手走x,后手走x+2,按照x+1作为对称轴,也是位置对称+棋子反转 ~~然后止步于此~~,实际上有更牛B的结论:无论双方怎么走,都是后手必胜 最
阅读全文
摘要:每次删度数最深的合法边,然后就行了(?)不知道原因( 删边用堆按深度维护点,每次找一个深度最深的点来删儿子(set维护不同度数的儿子,删完之后记得更新set)
阅读全文
摘要:首先先找出哪个是closer(不知道语言=不知道pre和now的关系) 发现(0,0)->(1,1)可以基本确定,除了(0,1)和(1,0)是相等距离的以外都是pre>now 排除特殊点,按顺序问(0,1),(1,0),(0,0),(1,1),那么可以找出pre>now的语句,然后问(0,0)可得到
阅读全文
摘要:# 题目大意 交互题 有一个长度为n的未知排列p,构成了一个环,初始有一个人在某个位置(未知) 每次询问可以给出一个步数x,然后人会向前走x步(i to (i+x)%n)并**返回所在位置的数字** 在1e4次询问内找到n,n<=1e9 **保证排列在交互前固定** # 题解 显然,要想知道n就必须
阅读全文
摘要:显然操作的颜色段是O(n)的,所以在每一段被破坏时再补上(出现时间~消失时间)这一段的贡献,显然贡献是一样的(颜色相同,且是整体加,所以每个都加 一点trick: 关于怎么把二分写好看,可以参考set的写法,在最后加一个end,变成[1,end] 那么就可以套用upperbound、lowerbou
阅读全文
摘要:F 太屑了,没写 如果直接暴力记矩阵的话是40*40=1600边长,显然不行 发现如果上下都没有匹配结束,则后面的字母是唯一确定的(按位比较,不同则无解) 设f[i,x]表示串长i,一边匹配到x,则转移大概是枚举另一边要接的串,有Fi=Fi-k*某个矩阵 所以把i也维护进去,维护后5个i转移,总边长
阅读全文
摘要:E 先做差,发现排列如果出现正负正负或负正负正就会挂,调整一下匹配即可使min变大 同时如果正和负都>1,则不存在中间一段左右两段其他的,这样也会挂 然后随便组合一下 F 手玩发现调整的一定是a1<b1,a2>b2,且a1<a2,b2<b1才会优 则讨论发现有b2 a1 a2 b1,b2 a1 b1
阅读全文
摘要:题意 给出n*n的矩阵,ai,j∈[1,n*n],现在要矩形覆盖若干次,每次把一个正方形的ai,j改为x,求最少的次数使得最后有k种不同的数 n<=500 题解 设sum为初始不同的数,若sum<k则显然只能一个个加,ans=k-sum 若sum>k,则有结论:ans<=2 证明:可以从(1,1)开
阅读全文
摘要:A 结论:假设在某个位置q减1了,则后面要全选(~~被痛击之后失去理智~~) 证明:如果后面某个位置没选,则可以把第一个q-1的位置和其交换一下,中间的至少+1,后面的不一定-1,极限情况也是中间+1后面不变,一定不劣 由于第一个-1取决于q,所以这些位置一开始都是固定的,在这些位置往前扩展不减1的
阅读全文
摘要:难度D>E>G>F>B>C>A A 当n>=3时都可以先把min换到位置2,然后随便找两个换,直到n=2时换12,输出min 否则n=2时只能直接换,输出a[2] B 我写的是a+b*c,b,c,当然也可以直接a+b+c,b+c,c C 随便找一个不合法的对(i,j)和(i,j+1),则显然要动至少
阅读全文
摘要:题目大意 一个无限长的数轴,初始0时间人在位置0,接下来在ti时位置xi会出现一个蛋糕,必须要在ti瞬间瞬间接住否则失败 人可以在任意时刻放分身,分身接蛋糕但不能动,至多同时存在一个分身,新放的会取代原来的 判断是否能接完所有蛋糕 n<=5000,坐标时间两两不同 题解 做法很多,但是想出一个阳间做
阅读全文
摘要:题目大意 n个数,有一个初始为0的计数器,每选一个数答案会加计数器的值,然后计数器加上该数 有k次计数器归0的机会,求最大答案 题解 我是sb 正数显然直接从大往小选,然后负数从小往大选,如果和小于0了就考虑使用归0 k次归0等价于k+1个挡板,每个数x的贡献为x*到某个挡板的距离 所以把负数排序从
阅读全文
摘要:题目大意 给出长为n(n是偶数)的01串S,每次可以把一个长度为偶数的前缀翻转,构造至多n+1次操作把串S变成串T或输出无解 n<=4000 题解 讲杂题时并没有给出操作次数限制,所以以为可以乱做,想每次翻到末尾,这样是3/2n次 首先把两个合成一组,如果01+10、00、11的个数不相等就无解 然
阅读全文
摘要:题目大意 长为n的序列,求最长众数非唯一子串长度 n<=2e5,ai<=n D1:ai<=min(100,n) 题解 D1: 枚举右端点,显然随着左端点不断右移,一定有某个时刻众数非唯一,因此求出当前众数与其他的相等的最小l之后对长度取max 每次+1-1只会改变1所以用桶维护,因为不好直接存所以写
阅读全文
摘要:题目大意 一个长为n的哈希表,每次在ai处加一个元素,其可以往左或往右找位置,设x为最终位置,则贡献为|ai-x| 对所有的不走出边界的a和所有的方向集合b求和,模p n<=500,p是质数 题解 ll:也是简单题 于是顺便把标爆成了nlogn 一开始以为可以走出边界,后来发现看错了 所以直接设一段
阅读全文
摘要:题目大意 一个从0开始的网格图,只有x&y=0的格子(x,y)存在,显然构成以一棵树 设根为(0,0),初始有一些黑色格子(给出的若干条路径并),A先手,之后AB轮流操作,每次可以把一个黑色格子变白,同时把所有祖先任意变色(各自独立),不能操作者输 现在B想要作弊,每次可以在开始前选一个点把其到根的
阅读全文
摘要:题目大意 给出n个点,求n(n-1)/2条直线据原点距离中第k小的 n<=1e5,k<=n(n-1)/2 题解 结论题 首先二分答案,变成判断一条直线AB是否与圆有交 结论:直线AB与圆有交,当且仅当A的切点连线A1A2和B的切点连线B1B2不相交 证明感受一下 所以直接离散化+树状数组即可 cod
阅读全文
摘要:题目描述 题解 设每条边都有一个初始为0的边权,每次查询断成两个块后就把两个块的边权+1,最后得到的树上任意两条边权相同的边之间都有一条边权小于其的边,则操作次数为最小边+1 把边权反过来,即初始为k每次把两侧-1,则变为相同的之间有大于其的 考虑dp,设f[i]表示以i为根的子树中能连上来的边的集
阅读全文
摘要:题目大意 一棵黑白灰的树,每次选择一个连通块内的一个子点集将其删掉,不能同时删黑白点,求最少删完的次数 n<=2e5 题解 不是这DE加起来怎么还没有C难写啊 发现把树删成两个连通块不比从外往内删优,因为可以同时删更多的点 又发现灰色点一定不会先删,一定是相邻的点只剩一个时跟着那个点一起删 转化一下
阅读全文
摘要:题目大意 给出n个不减数组,每个数组可以取一段前缀,求恰好取出k个数的最大和 n,k<=3000,Σ|a|<=1e6 题解 比C阳间 显然只会有最多一个选了的数组没有选满,否则找出两个不满的可以将其调整,一定是越调越优 做法1:设f[i,j,0/1]表示当前到i选了j个,是否已经选过一个未满的,写出
阅读全文

浙公网安备 33010602011771号