题目传送门:https://agc028.contest.atcoder.jp/tasks/agc028_a 题目翻译 给你两个串\(s\)与\(t\),长度分别为\(n,m\).问你存不存在一个串长度为\(l\),\(l\)是\(n,m\)的公倍数,并且满足下面的条件: \(1\).对于第\(1\)位.第\(l/n+1\)位,第\(2*l/n+1\)位--第\((n-1)*l/n+1\)位的字符串依次拼接等于\(s\). \(2\).对于第\(1\)位.第\(l/m+1\)位,第\(2*l/m…
题目传送门:https://agc009.contest.atcoder.jp/tasks/agc009_d 题目翻译 定义只有一个点的树权值为\(0\),若干棵(可以是\(0\)棵)权值为\(k\)的树任选一个点向一个单独的结点\(v\)连边,新生成的树的权值为\(k+1\).显然对于一棵树他的权值是一个范围\([x,inf)\),求给定的树的权值范围的最小值.\(n\leqslant10^5\) 题解 假设\(bit[i]\)为以\(i\)为根的子树的权值.那么任何一对权值相同的点在树上的简…
题目传送门:https://agc009.contest.atcoder.jp/tasks/agc009_e 题目翻译 纸上写了\(N\)个\(1\)和\(M\)个\(0\),你每次可以选择\(k\)个数字擦掉,然后再写一个他们的平均值上去.保证\(N+M-1\)可以整除\(k-1\),请问最后留下来的那个数有多少种.\(N,M,K\leqslant 2000\) 题解 这题可以转化一下题意:有一棵\(k\)叉树,有\(n+m\)个叶子,每个叶子的权值是\(0\)或\(1\),其他结点的权值是子…
题目传送门:https://agc004.contest.atcoder.jp/tasks/agc004_c 题目翻译 给你一张网格图,指定的格子是紫色的,要求你构造出两张网格图,其中一张你可以构造一些格子是红色的,另一张是蓝色的,要求红色格子与蓝色格子是四联通的,最后叠在一起与紫色格子的位置不冲突.\(n,m\leqslant 500\) 题解 第一列全红,最后一列全蓝,奇数行全红,偶数行全蓝,然后紫色的格子都要有就\(OK\)了. 时间复杂度:\(O(nm)\) 空间复杂度:\(O(nm)\…
题目传送门:https://agc014.contest.atcoder.jp/tasks/agc014_d 题目翻译 给你一棵树,每次任选一个点染色,先手染白色,后手染黑色.如果最后存在一个白色的点与其相连的点都是白色的,就算先手胜利,否则后手胜利.两人绝顶聪明,\(n\leqslant 10^5\) 题解 假设这颗树存在完美匹配,那么不管先手染哪一个点,后手都能将与其匹配的点染成黑色.也就是说,存在完美匹配的话后手一定胜利. 假设不存在完美匹配,先手每次可以选择一个叶子结点的父亲染色,然后后…
题目传送门:https://agc002.contest.atcoder.jp/tasks/agc002_f 题目翻译 你有\(n*k\)个球,这些球一共有\(n\)种颜色,每种颜色有\(k\)个,然后你可以随意把它们放成一行.放好后把每个颜色最左边的球染成\(n+1\)号颜色,问这样可以搞出多少种不同的颜色序列. 题解 最近没休息好,状态不好,而且这还是我最不擅长的计数题,跪了跪了. 你们去看别人的题解吧,我也讲不清楚,这里只有丑逼代码可以看. 时间复杂度:\(O(nk)\) 空间复杂度:\(…
题目传送门:https://agc013.contest.atcoder.jp/tasks/agc013_c 题目翻译 给你一个周长为\(L\)的圆,有\(N\)只蚂蚁在圆上爬,速度为一单位距离每秒.有的蚂蚁是逆时针的,有的蚂蚁是顺时针的,蚂蚁互相碰面会转向,问你\(T\)秒后每只蚂蚁分别在什么地方.\(L,T\leqslant 10^9,N\leqslant 10^5\) 题解 碰面转向相当于不转向交换编号,所以我们可以求出最后每只蚂蚁会在哪个地方.然后只需要关注第一只蚂蚁最后的\(pos\)…
题目传送门:https://agc010.contest.atcoder.jp/tasks/agc010_c 题目翻译 给你一棵树,每个点有个权值,每次操作可以选择两个度数为\(1\)的结点,然后让这两点之间的简单路径上的所有点权值减一,允许操作无数次,问是否可以使得所有点权变成\(0\).\(n\leqslant 10^5\) 题解 一开始题意看错了,以为是边上有权值,然后想了想可以从下往上确定每个点被经过多少次,感觉有点思路的时候发现是点上有权值.那么同样的,我可以从下往上确定每条边被经过多…
题目传送门:https://agc007.contest.atcoder.jp/tasks/agc007_e 题目翻译 现在有一个二叉树,除了叶子每个结点都有两个儿子.这个二叉树一共有\(m\)个叶子,你需要从\(1\)号点出发,旅行\(m+1\)天后回到\(1\)号结点,其中前\(m\)天每天需要在叶子节点结束,并且每个叶子结点只允许被经过一次,每条边只允许被经过两次,边有边权,旅行的费用即为两点之间简单路径上权值之和,然后问你费用最大的一天最小可以是多少.第一天和最后一天免费. 题解 嗯,这…
题目传送门:https://agc012.contest.atcoder.jp/tasks/agc012_c 题目翻译 如果一个字符串是好的,那么这个字符串的前半部分和后半部分肯定一模一样.比如\(aa\)与\(bubobubo\)就是好的串,而空串,\(a\)与\(abcabcabc\)以及\(abba\)就不是好的.现在给你一个小于等于\(10^{12}\)的数字\(N\),要你求出一个字符串\(s\),使得这个串的\(2^{len}-1\)个子串里刚好有\(N\)个子串是好的.要求\(le…