
atcoder
atcoder刷题小结
RainbowCrown
我不是归人,我是过客。
展开
-
AtCoder Regular Contest 091 F - Strange Nim
题目大意给你n个石子堆,然后Alice和Bob开始博弈。每个人每次可以从第i堆里面选出[1,⌊aiki⌋][1,\lfloor\frac {ai}{ki}\rfloor][1,⌊kiai⌋]个石子。然后最后不能选的人就GG。思考历程/题解其实还是挺简单的,sg函数裸题。先是想了个很暴力的dp方程,然后自以为可以线段树优化,结果发现很GG。然后就想到了sg函数一般解法打表——分类讨论。然后就一层一层地列,于是就发现了一些奇妙的规律。当1<=xi<ki1<=xi<ki1.原创 2020-09-22 22:05:03 · 249 阅读 · 0 评论 -
AtCoder Grand Contest 032 D - Rotation Sort
题目大意大致就是给你一个排列aia_iai,然后你又两种操作方式:一种是把某个数提出来,放在其后面任意一个数后,花费A;另一种是把某个数提出来,放在其前面任意一个数后,花费B。思考历程好吧,一道套路题。首先提出来之后再放进去不怎么影响,关键还是看走到他的时候不动点的情况。所以从不动点下手基本就好了。还是很简单的(没想到菜鸡的我竟然能切AGC的水题了!)题解大致就是先不考虑移动的点,然后不动点必然是一个递增的序列。求出不动点的相对位置之后就可以倒过来推移动的点。然后设f[i][j]f[i.原创 2020-09-21 22:02:23 · 264 阅读 · 1 评论 -
AtCoder Grand Contest 027 D - Modulo Matrix
题目大意构造一个n∗nn*nn∗n的矩阵要求满足:1、任意相邻的两个元素(可以上下可以左右)都满足amax%amin=ma_{max}\%a_{min}=mamax%amin=m(其中mmm是任意的一个整数,amaxa_{max}amax是元素中较大的数,amina_{min}amin是较小的数)2、对于任意元素aaa满足:a<1015a<10^{15}a<10153、对于任意两元素a,ba,ba,b满足a!=ba!=ba!=b思考历程可以像国际象棋一样染色一下,同.原创 2020-09-13 09:41:42 · 221 阅读 · 0 评论 -
AtCoder Grand Contest 029 C - Lexicographic constraints
题意给你n个数,每个数ai表示当前第i个字符串的长度。你现在要构造一个最小的字符集大小m使得可以用字符集的字符表示出n个字符串且要求:对于任意的一个构造出来的字符串si满足字典序大小Si>Si−1S_i>S_{i-1}Si>Si−1。求m的最小值。思考历程我好蠢,竟然以为m是最大为26。还以为是道水题,直接暴力模拟。后来发现模拟比较麻烦,且发现理解错题意了。然后发现可以二分,然后还是直接暴力强模拟即可。题解考虑二分答案。二分答案出来后可以看做是一个m进制。从小到大开.原创 2020-09-10 21:29:11 · 197 阅读 · 0 评论 -
AtCoder Grand Contest 034 D - Manhattan Max Matching
题目大意大概就是图上有2n个位置有点,其中n个为黑点,另外n个为白点。每个有点的位置上有ci个球,然后现在要你把每个黑球和白球一一匹配,使得曼哈顿距离和最大。思考历程一看就想到了网络流,暴力建图很简单,然鹅会T。想想怎么优化连边吧!看到取绝对值就想怎么去拆掉,然鹅想歪了,想去怎么排序了。(太菜了想了好久,然后就想到一个水法!暴力建图时,只取前200大的点来连边。然后费用流!然后出题人只让一个点过去了。QWQ题解上面都是自欺欺人的玩意。这题的优化是真的秒。考虑枚举两个点(xa,.原创 2020-09-08 20:46:56 · 337 阅读 · 0 评论 -
AtCoder Regular Contest 080 F - Prime Flip
题意给你一个数轴,然后数轴上面每个位置都有一枚硬币。一开始硬币处于正面。然后现在有n个位置的硬币被翻成反面。你现在可以选择一个奇质数ppp,然后把某个位置iii到i+p−1i+p-1i+p−1之间所有的硬币都翻一遍。问最少翻多少遍可以把所有硬币翻成正面。思考历程看到就想到哥德巴赫猜想了。结果想了半天都没有什么好的策略。题解其实多加个差分就没了。我好菜啊。我们设一个数f[i]f[i]f[i]表示当前第iii个数和第i−1i-1i−1个数是否相同。若相同则为0,否则为1。那么现在的目标就.原创 2020-06-18 22:17:20 · 198 阅读 · 0 评论 -
AtCoder Regular Contest 080 E - Young Maids
题意给你一个序列,然后现在你每次从里面取出两个相邻的值,然后拉出来放在答案数组前面。然后空位合拢。问最小字典序情况下的答案数组是什么。思考历程一开始感觉好熟悉的亚子,然后我刚推完样例就知道了。我™做过。题解我们发现,原题可以转化成给他打括号。然后括号匹配起来就好了。于是我们就可以用贪心的方法,分别维护奇数位和偶数位的最小值。然后我们就可以每次找到两个当前最优位置(一定要保证左右两边空格数为合法的),然后递归左边,中间,右边分别取找。每个位置只会走一次,而且最多只有n/2层,O(n&nb.原创 2020-06-18 21:21:44 · 186 阅读 · 0 评论 -
AtCoder Regular Contest 093 E - Bichrome Spanning Tree
题意给你一个图,每条边有一个边权。现在你可以对每条边染色,染成黑色或白色。一种合法的染色方案指的是染色完毕后,对原图求MST(最小生成树)。最小生成树满足所有树上的边至少包含一条黑色变和白色边。然后最小生成树的边权和要等于给出的X值。求合法染色方案数。思考历程开始没什么想法。然后我假设sum为求一遍MST的值。发现我们可以对x分成三种情况,一种是sum>xsum>xsum>x,显然没有情况。一种是sum=xsum=xsum=x,这种情况推了老半天,推出来的似乎还错了。.原创 2020-06-05 22:03:47 · 241 阅读 · 0 评论 -
AtCoder Regular Contest 103 F - Distance Sums
题意大致意思就是有一棵还未构建出来的树。然后给出一个DiDiDi表示这棵树第i个点到所有点的距离和。且保证DiDiDi互不相同,要求构造出这棵树。思考历程题意清新简短。然鹅真滴恶心。一开始成功发现一个性质,Di最小的点即为重心。然后考虑将它作为一个根来搞。然后就搞到头穿都没搞出来。心态大崩。题解看完题解,犹如醍醐灌顶。只能大呼妙哉。重心确实可以当数的根,但是从根往周围拓展显然是个令人智熄的想法。题解是反过来,从叶子推向根。我们发现,由于d是不会重复的,而且一定有一个叶子节点.原创 2020-06-04 21:30:22 · 174 阅读 · 0 评论 -
AtCoder Regular Contest 101 F - Robots and Exits
题意题意就是一个以为数轴上某些位置有出口,某些位置有机器人。然后你可以同时控制所以的机器人往左或往右走一格。机器人走到出口就会立即退出。求方案数。一个不同的方案数当且仅当有某个机器人从不同出口出去。思考历程这题我是某天晚上训练快结束时看到的。感觉很熟悉,因为以前似乎也有个机器人的题。然鹅想了很久的dp都感觉不太行。其实模型稍微转化一下模型就变成一个非常普及组的题目了。当然这个转化是真的奇妙。题解首先每个机器人其实都是独立的,而这个机器人只有两种情况对答案贡献,往左往右。具体怎么走.原创 2020-06-01 21:20:32 · 204 阅读 · 0 评论 -
AtCoder Grand Contest 023 D - Go Home
题意现在有一个数轴,有n个公寓。然后第i个公寓在xi位置上,且当前第i个公寓住pi个人。那么现在我们从s开始出发。然后就会民主投票(多数人暴政),会选择当前车子往左往右走一格,若票数相同就走左。当然每个人都是自私的且非常聪明的(这并不意味这他会一定往自己家走)。问最早什么时候送完所有人。前言其实这题是我无聊找atcoder题时找到的。当时想了想感觉没思路,后来才发现奇妙无比。题解首先我们分析一下这些自私的人会怎么选。假设当前只剩下最左边和最右边的两家公寓。如果最左边的公寓人数大于最右边的人.原创 2020-05-28 21:50:08 · 207 阅读 · 0 评论