
思维
文章平均质量分 85
CCloth
这个作者很懒,什么都没留下…
展开
-
[思维][打表]Money Game 2022年ICPC杭州站D
首先可以打一个表来找找规律,通过打表可以发现在若干轮迭代后,最终整个数组都趋于稳定,每个数字都不再变化,并且满足a[1] = 2*a[2] = 2*a[3] = ...... = 2*a[n]这个规律,同时操作不会改变数组加和,设sum为数组元素加和,最终就是a[1] = sum/(n+1)*2,a[2] = a[3] = ...... = a[n] = sum/(n+1)。原创 2023-01-11 21:06:42 · 1164 阅读 · 0 评论 -
[好题][图论][思维]Tick, Tock Codeforces1758E
不妨设最终矩阵上的值全为0,那么任意具有边权k的边(u, v)就需要(val[u]+val[v]+k)%h == 0,在这个限制下只要确定连通块上的某一点的点权那整个连通块点权都确定了。接下来考虑还没加进来的-1边,可以知道这些-1边最终会让这些连通块完全连通,并且若有一条-1边连接(u, v),且u和v分别属于两不同连通块,那么这条-1边的边权可以任取[0, h)中的每一个值,这是因为u和v的点权可以任取[0, +∞)中的任何值,所以边权总能凑出来这h种可能。原创 2023-01-01 18:08:32 · 522 阅读 · 0 评论 -
[思维]Zero-Sum Prefixes Codeforces1748C
不过这里还需要特别注意,如果0出现次数是最多的,那么其实l处的零不需要考虑这一段了,那它就可以考虑前面了,所以此时结果要+1。最后别忘了从下标1到第一个零出现的位置,这段区间还没有统计答案呢,最后加上这段答案就可以了。给出一个长度为n的数组,其中某些位置可能为0,你可以进行若干次操作,每次操作选择一个a[i] = 0的位置,然后将a[i]修改为任意值,最后要求数组a的前缀和数组s包含尽量多的0。原创 2022-12-31 22:52:30 · 378 阅读 · 0 评论 -
[构造]Complementary XOR Codeforces1750C
操作偶数次不改变ab串的相同相反性,操作奇数次才会改变。再模拟一下发现,对于ab串相对应的n个位置单独来看,如果a[i]和b[i]开始前是相同的,那么一次操作后a[i]和b[i]变成相反的,如果a[i]和b[i]开始前是相反的,那么一次操作后a[i]和b[i]变成相同的。有两个长度相同的01串ab,每次操作选定一个区间[L, R],对a串中[L, R]内的数字反转,对b串中[1, L-1]和[R+1, n]内的数字反转,问最后能否在n+5次操作内把两串转为全0,如果可以给出操作序列。原创 2022-11-10 18:16:01 · 661 阅读 · 0 评论 -
[思维]Knowledge Cards Codeforces1740D
首先最后顺序是降序,所以要先把最下面的数字也就是最大的数字x移动到(n, m),这就需要在(1, 1)位置上的在x上面的数字先移动到棋盘上的其他位置,如果此时棋盘上没有空位容纳其它数字了那就说明误解,而x上面有多少个有效数字可以用树状数组维护出来,就是它上面数字个数减去已经移到终点的数字个数,设这个值为num,那么num应该小于等于棋盘上的空位数,棋盘上能放其他数字的空位数应该是n*m-4,减去的四个点分别是起点、终点、从起点出来的落脚点、用于不断移动的空位。原创 2022-11-09 09:39:34 · 278 阅读 · 0 评论 -
[思维]Yet Another Problem Codeforces1747D
对同一个奇数长度区间无论进行多少次操作,其异或和都不会改变,所以如果询问的区间长度为奇数,那其实很好判断,但如果询问的区间长度为偶数,可以想到应该是将其分为两奇数长度区间,然后分别进行操作使其为0,所以现在问题就是对于偶数区间找一个断点,然后判断断点两侧是否异或起来都为0。有一个长度为n的数组,m次询问,每次询问给出一个l和r,现在你可以进行一种操作,取一个奇数长度区间,然后让其每个元素变成区间异或和,问通过这种操作将区间所有数清0的最小操作次数。原创 2022-11-08 20:06:47 · 380 阅读 · 0 评论 -
[找规律]Array Concatenation 2022年CCPC桂林站C
再进一步分析可以发现无论第几次翻转最终答案都不变,这是因为把两个第一次翻转位置不同的最终数组摆到一起,剔除相同位置的相同数值,剩下的一定是2*t个位置,且其中t个位置升序,t个位置逆序,这样两数组最终贡献上的差值就抵消了,所以最终答案就两种情况,一种是不进行翻转操作,一种是最后一次才进行翻转。有一个长度为n的数组,还有m次操作,每次操作可以选择将数组copy一份拼接到原数组后面作为新数组,或者将数组copy一份拼接到翻转后的数组后面作为新数组。原创 2022-11-05 11:18:10 · 720 阅读 · 0 评论 -
[好题][思维]Paimon Sorting 2021年ICPC南京站D
具体做法是看前i-1个数的最大值,如果a[i]小于等于max[i-1],那么第一轮遍历时a[1]就一定是max[i-1]了,所以第一轮两数组操作相同,交换次数也相同,实际上第二轮到第i-1轮都完全一样,差别在于长度为i的数组还需要进行第i论遍历,此时前i-1个数都已经升序排列了,需要交换的次数就是前i-1个数中去重后大于a[i]的数个数,这个值用树状数组很容易获得。题目给出了一段用于排序的代码,现在对于一个长度为n的数组,需要输出n个数,分别表示对前i个数进行排序需要进行多少次交换操作。原创 2022-11-03 22:18:07 · 993 阅读 · 0 评论 -
[思维][双指针]Klee in Solitary Confinement 2021年ICPC南京站C
最后需要注意n == 1的情况和k == 0的情况。有一个长度为n的数组a,以及一个参数k,现在要求整个数组中出现次数最多的那个数的出现次数。你可以进行1次或0次操作,操作内容是任选一个区间[l, r]并让每个数+k,问最终答案是多少。原创 2022-11-02 16:30:18 · 652 阅读 · 0 评论 -
[思维]Factorial Divisibility Codeforces1754D
之后开一个500000的桶数组cnt,cnt[i]用来记录i这个阶乘出现的次数,之后对于i从1到x-1,将cnt[i]转为小于等于i的数,也就是如果i!每出现了i+1次就将其凑成一个(i+1)!最后剩下个数一定小于等于i,这么处理完之后a[1]!(m小于等于i),而某些位置m*i!一定为0,也就是只要i从1到x-1中出现了一个非零的cnt[i],那么最后一定模x!给出n和x,接下来给出长度为n的数组a,问a[1]!原创 2022-10-23 18:33:10 · 353 阅读 · 0 评论 -
[思维]GCD Guess Codeforces1665D
根据这点就可以求出最低位是否为1,将这个方法扩展至判断第i位,只需要构造a、b让x+a和x+b后i-1位全为0且第i位的结果是x的第i位+1,如果x的第i位为1,那么x+a和x+b的后i位都是0,也就是说x+a和x+b的gcd是2^(i+1)的倍数,如果x的第i位为0,那么x+a和x+b的第i位为1,后i-1位都是0,这说明x+a和x+b的gcd一定是2^i。用这种方法对每一位分别判断就能够得到最终x的数值了。每次询问需要给出不相等的两个数a和b,然后系统会返回gcd(x+a, x+b)给你。原创 2022-10-19 07:54:03 · 272 阅读 · 0 评论 -
[思维][找环]Edge Split Codeforces1726D
这样问题就可以转化为如何选出一个无环的边集A,使得剩下的边集B仍然无环,比较容易想到构造出一棵树作为A,这样剩下的边数可能为0、1、2和3,只要剩下边数不为3,那它们一定不可能构成环,可以达到最优解,而对于剩下边数为3的情况,如果三边构不成三角形,那同样能得到最优解,如果三边构成了三角形,那就选择其中一条边e加入树A,树中多了一条边肯定会出现环,所以还需要在树A的环路中删除一条非e的边,这样最终树A和剩下边集B中均无回路,可以达到最优解。原创 2022-09-28 08:47:32 · 264 阅读 · 0 评论 -
[思维]The Enchanted Forest Codeforces1688D
在一个n格的地图上,有若干蘑菇,每格初始蘑菇数为ai,现在可以任选一个起点,同时可以在k秒内移动,每秒移动一格,移动到某格后可以获得格子内的蘑菇数,同时所有格子蘑菇数增加1,初始时间为0秒,问到k秒时能获得的最大蘑菇数。这道题如果想到了站在原地不动就会比较简单,但是当时想到的是不断来回移动,虽然答案是一样的,但是实现起来就麻烦一点了。原创 2022-09-17 10:46:13 · 266 阅读 · 0 评论 -
[思维]Color the Picture Codeforces1711C
比较显然的是符合题意的图片一定是横着涂或者是竖着涂,所以分别看下是否存在符合要求的方案。如果所有颜色的道数加和大于等于n或m那就能够染色,不过这里有种特殊情况,也就是样例二那种情况,当n或m为奇数时要考虑最后一种颜色会不会被卡住,如果颜色的道数全是2,那显然会被卡,但只要出现一个大于2的颜色,就不会被卡住。给出一张n*m的图片,用k种染料进行染色,要求每个格子至少有三个同色的相邻格子,每种染料能涂ai个格子,问是否存在一种染色方案。原创 2022-09-15 07:41:54 · 434 阅读 · 0 评论 -
[思维]Party Codeforces1711B
关于为什么最多删两个人有一个证明,假设最小不开心值来自于删除了两个以上的人的情况,如果其中某个人的度为奇数,那么直接删除那个人来得到的答案一定更优,如果删除的人度数都是偶数,那么他们中一定存在某对相邻点,否则不可能得到偶数对朋友关系,那这时直接删除相邻点对也能得到更优的答案,这就证明出最多删除两个人了。你可以邀请n个人参加聚会,如果第i个人不被邀请那就会产生一个不开心值ai,另外有m对朋友关系,要求邀请的人中具有偶数对朋友关系,问在这个条件的限制下能够得到的最小不开心值。原创 2022-09-14 22:29:22 · 220 阅读 · 0 评论 -
[思维]Tournament Countdown Codeforces1713D
而具体实现也很简单,先询问1和3,然后假如是1获胜的次数多,那就再问1和4,而如果1和3胜利次数相同,那就可以问2和4,通过这样的方式就能知道这颗子树的最终胜者。所以可以在这个满二叉树上递归处理得到答案。有2^n个选手参与锦标赛,最下层按照1~2^n排列,具体的输赢已经确定,现在你可以询问a和b,程序将告诉你谁胜利次数多,如何在2^(n+1)/3次询问内找到最终的胜者。原创 2022-09-14 23:45:00 · 181 阅读 · 0 评论 -
[思维][组合数学]Madoka and The Corruption Scheme Codeforces1717D
首先可以对于任何一个你的方案,都可以转换成左边选手一定获胜的方案,只需要左右子树交换一下位置即可,这样接下来表述会比较清楚。有2^n个参赛选手,每两人之间进行比赛,胜者之间再次比赛,这样n轮后会出现一个最终胜者,现在你可以任意安排第一轮的比赛顺序,并且对于每次比赛你都可以选择哪方获胜,最终目标是让最后获胜者的编号尽量小,不过另一个人有至多k次干扰你的机会,每次干扰可以指定一场比赛,使其结果与你预期相反,问最终即使受到干扰下获胜者的最小编号。原创 2022-09-05 15:42:43 · 331 阅读 · 0 评论 -
[dp]Matryoshka Doll 2022杭电多校第9场 1007
有n个玩偶,它们的尺寸分别为ai,当两玩偶尺寸差大于等于r时就可以把两个玩偶套起来,问将这n个玩偶分成k组的方案数,要求每组的玩偶都能够套起来。原创 2022-08-16 23:57:35 · 225 阅读 · 0 评论 -
[思维]Shortest Path in GCD Graph 2022杭电多校第9场 1008
当u和v互质时它们之间最短路一定是1,也就是直接从u走到v,条数也一定是1,当u和v不互指时最短路一定是2,因为可以从u先走到1,再从1走到v,而条数就是和u互质且和v互质的数字个数,不过当u和v的gcd本来就是2时还会多一条直接走过去的路,所以问题就转化为求n以内的和u*v互质的数字个数。有一个由n个点构成的完全图,两点i,j之间的边权为gcd(i, j),有q次询问,每次询问给出u,v,求u到v的最短路长度和条数。...原创 2022-08-16 23:22:30 · 391 阅读 · 0 评论 -
[思维]Sum Plus Product 2022杭电多校第9场 1010
a*b+a+b等于(a+1)*(b+1)-1,所以无论合并到哪一步所有数字的a+1乘积再-1最终都不变,所以合并到最后一个小球上的值就是所有数字+1的乘积再-1。有n个带数字的小球,可以随机选择其中两个小球进行合并,合并后得到一个新的小球,其上的数字为a*b+a+b,问合并到最后只剩一个小球时其上数字的期望。...原创 2022-08-16 23:04:47 · 378 阅读 · 3 评论 -
[思维]Longest Common Subsequence 2022牛客多校第8场 F
由于n和m都是1e6级别的,所以没法直接跑n^2的lcs算法,可以注意到两个数组中数据生成都是有规律的,第i+1个位置的值是通过第i个位置的值得到的,如果一旦出现a[i]等于b[j],那么a数组第i个位置和b数组第j个位置后面的值一定是相同的,所以问题就很好解决了,只需要记录下a数组中a[i]首次出现的位置,然后遍历b数组,当b[i]在a数组中出现过时,就可以更新一次答案,最终结果取最大值。...原创 2022-08-14 21:56:01 · 182 阅读 · 0 评论 -
[思维]Ironforge 2022杭电多校第8场 1005
最后一个问题就是怎么判断能不能走到下一个城市了,这可以通过一个vector数组维护出来每个质因子出现的位置,然后二分查询,例如要想知道在区间[l, r]时能否移动至l-1,那就找一下l到l-1那条边的边权bi在vector[bi]中第一个大于等于l的位置,如果它小于等于r,那就说明这段区间内出现过bi,也就可以走过去。最后整个问题的时间复杂度为O(nlogn)。...原创 2022-08-12 15:42:45 · 320 阅读 · 0 评论 -
[树形dp]Orgrimmar 2022杭电多校第8场 1008
最终答案就是dp[1][1][1],dp[1][1][0],dp[1][0][1]和dp[1][0][0]中的最大值,各点初始化是dp[i][1][0] = dp[i][1][1] = 1,dp[i][0][0] = dp[i][0][1] = 0。给出一棵树,从树中选出一个点集,要求该点集生成的子图各连通块大小最大为2,问这样的点集最大的size大小。...原创 2022-08-12 12:10:08 · 309 阅读 · 0 评论 -
[思维]Theramore 2022杭电多校第8场 1001
可以发现,这种操作总是会让区间内对应数字交换位置,如果再更深入一点,无论如何进行这种操作,奇数位置的数字只会和奇数位置数字交换,偶数位置的数字只会和偶数位置数字交换,而且对区间[l, r]进行反转后可以再对区间[l+1, r-1]进行反转,这就相当于只让第l个位置和第r个位置的数字交换了位置,通过这种交换就可以让偶数位置的0和奇数位置的0尽量往前放,当0用完了就填1,最后就得到了字典序最小的01串。...原创 2022-08-11 22:49:42 · 292 阅读 · 0 评论 -
[分类讨论]Bit Transmission 2022牛客多校第5场 C
有一个机器人以及一个长度为n的01串,机器人对于这个01串有3*n条陈述语句,每条语句给出该01串某个位置是否为1,不过这个机器人可能会说谎,已知其最多说谎一次,问能否确定该01串。原创 2022-08-04 10:35:38 · 210 阅读 · 0 评论 -
[博弈论][思维]Bragging Dice 2022杭电多校第5场 1010
由于二人都知道所有骰子点数了,那么先手的人为了赢一定会说个数最多且点数最大的骰子,这样后手的人一定会输,不过由于这个游戏还包括三条特殊规则,所以先手并不是必胜,前两条规则没什么用,第三条规则是如果某个杯子中点数均不同,那么该杯子中视为没有骰子。如果两个杯子中都是这样,那么最终桌子上就没有骰子了,所以先手就没法声明了,此时先手会输。有两个人玩游戏,桌子上有两个杯子,每个杯子中有n个骰子,两人均已知各骰子的点数,然后开始一个人声明,另一个人提出挑战,问最终谁赢。...原创 2022-08-04 09:48:17 · 760 阅读 · 0 评论 -
[最短路][思维]Slipper 2022杭电多校第5场 C
一开始想到的是对于深度差为k的点对建边,但是由于这两层之间任意两点都需要一条连边,显然会添加很多条边,这样跑最短路就会TLE,一个更好的思路是对于这两层建立一个虚点,各层上的点都连到虚点上,这样就会少添加很多边,不过还需要注意不能只用一个虚点,对于向上传送建立一个虚点,对于向下传送还需要建立一个虚点,这是为了防止利用传送在同层间任意转移。给出一棵n点构成的树,树上每条边都有边权wi,表示移动所需的能量,对于深度差为k的点还可以通过花费p点能量传送过去,给出起点s和终点t,问从起点到达终点所需最少能量。...原创 2022-08-02 23:36:42 · 285 阅读 · 0 评论 -
[思维]NIO‘s Sword 2022牛客多校第4场 K
可以发现每次击败敌人需要升级次数最多不会超过n的位数,这点通过鸽巢原理可知,那么就可以从1开始枚举需要添加几位数字,如果添加i位数字就能击败敌人,那么一定存在一个x使得y*now+x同余1,y是一个由i位9构成的常数并且x∈[0,y],其实也就是攻击力的增量和1同余的意思,于是就可以从1开始枚举要添加几位数字了,O(1)判断出是否能击败敌人,最终统计一下答案即可,最后要注意n=1的情况答案是0而不是1。...原创 2022-07-31 19:54:10 · 142 阅读 · 0 评论 -
[思维]Difference of GCDs CF1708B
You are given three integersnn,ll, andrr. You need to construct an arraya1,a2,…,ana1,a2,…,an(l≤ai≤rl≤ai≤r) such thatgcd(i,ai)gcd(i,ai)are all distinct or report there's no solution.Heregcd(x,y)gcd(x,y)denotes thegreatest common divisor (GCD)...原创 2022-07-17 10:46:28 · 278 阅读 · 0 评论 -
[思维]Mark and Lightbulbs CF1705D
Markhasjustpurchasedarackofnnlightbulbs.Thestateofthelightbulbscanbedescribedwithbinarystrings=s1s2…sns=s1s2…sn,wheresi=1si=1meansthattheii-thlightbulbisturnedon,whilesi=0si=0meansthattheii-thlightbulbisturnedoff.Unfortunately,thelightbulbsarebroken,andt。.原创 2022-07-16 14:00:34 · 281 阅读 · 0 评论 -
[思维]Counting Triangles 2021牛客多校第3场 J
Goodeat finds an undirected complete graph with n vertices. Each edge of the graph is painted black or white. He wants you to help him find the number of triangles (a, b, c) (a < b < c), such that the edges between (a, b), (b, c), (c, a) have the same colo原创 2022-07-13 15:51:17 · 173 阅读 · 0 评论 -
[思维]Find 3-friendly Integers 2021牛客多校第1场 F
A positive integer is 3-friendly if and only if we can find a continuous substring in its decimal representation, and the decimal integer represented by the substring is a multiple of 3.For instance:104 is 3-friendly because “0” is a substring of “104” a原创 2022-07-11 20:41:28 · 151 阅读 · 0 评论 -
[思维][贪心]Lena and Matrix CF1689D
Lena is a beautiful girl who likes logical puzzles.As a gift for her birthday, Lena got a matrix puzzle!The matrix consists of nn rows and mm columns, and each cell is either black or white. The coordinates (i,j)(i,j) denote the cell which belongs to the i原创 2022-07-10 22:53:14 · 298 阅读 · 0 评论 -
[dfs][思维]Infected Tree CF1689C
Byteland is a beautiful land known because of its beautiful trees.Misha has found a binary tree with nn vertices, numbered from 11 to nn. A binary tree is an acyclic connected bidirectional graph containing nn vertices and n−1n−1 edges. Each vertex has a d原创 2022-07-10 22:41:59 · 428 阅读 · 0 评论 -
[博弈][思维]Just a joke 2021牛客多校第4场 F
Alice and Bob are playing a game.At the beginning, there is an undirected graph G with n nodes.Alice and Bob take turns to operate, Alice will play first. The player who can’t operate will lose the game.Each turn, the player should do one of the following原创 2022-07-09 10:05:18 · 330 阅读 · 0 评论 -
[dp][思维]Paranoid String CF1694B
Let's call a binary string TT of length mm indexed from 11 to mm paranoid if we can obtain a string of length 11 by performing the following two kinds of operations m−1m−1 times in any order :For example, if T=T= 001, we can select the substring [T2T3][T2T原创 2022-07-07 19:15:31 · 362 阅读 · 0 评论 -
[思维]Directional Increase CF1694C
We have an array of length n. Initially, each element is equal to 0 and there is a pointer located on the first element.We can do the following two kinds of operations any number of times (possibly zero) in any order:But there is one additional rule. After原创 2022-07-09 15:56:53 · 315 阅读 · 0 评论 -
[思维][贪心]Fake Plastic Trees CF1694D
We are given a rooted tree consisting of n vertices numbered from 1 to n. The root of the tree is the vertex 1 and the parent of the vertex v is pv.There is a number written on each vertex, initially all numbers are equal to 0. Let's denote the number writ原创 2022-07-07 17:18:54 · 334 阅读 · 0 评论 -
[dfs][思维]Tree Queries CF1695D1&&D2
The only difference between this problem and D1 is the bound on the size of the tree.You are given an unrooted tree with nn vertices. There is some hidden vertex xx in that tree that you are trying to find.To do this, you may ask kk queries v1,v2,…,vk wher原创 2022-07-07 12:11:54 · 209 阅读 · 0 评论 -
[构造]Palindromic Numbers CF1700B
During a daily walk Alina noticed a long number written on the ground. Now Alina wants to find some positive number of same length without leading zeroes, such that the sum of these two numbers is a palindrome.Recall that a number is called a palindrome, i原创 2022-07-06 22:42:27 · 273 阅读 · 0 评论