W
H
X
摘要: Educational Codeforces Round 103 E - Pattern Matching 在每一个限制条件中,\(s_j\) 可以和 \(16\) 个串匹配(每个位置是不是 _ ,\(2^4=16\))。把这些串都找出来,要求 \(mt_j\) 排在最前面,从其它串向 \(mt_j 阅读全文
posted @ 2021-02-01 19:54 -敲键盘的猫- 阅读(149) 评论(0) 推荐(0) 编辑
摘要: January Challenge 2021 Division 3 Chef and Ants 如果只有一根线,两只蚂蚁相撞可以看成沿着原路前进,这和两只蚂蚁都掉头显然等价。答案就是蚂蚁相撞的次数:负半轴蚂蚁数量 \(\times\) 正半轴蚂蚁数量 有了这样的转化,多条轴的问题也容易解决了 如果两 阅读全文
posted @ 2021-01-18 22:14 -敲键盘的猫- 阅读(143) 评论(0) 推荐(0) 编辑
摘要: Codeforces Round #694 (Div. 1) B - Strange Definition 来看一些结论: 1、两个数 \(x,y\) 满足条件等价于 \(xy=k^2\) (两数乘积是完全平方数) 证:若 \(xy=k^2\),则有$\frac{lcm(x,y)}{gcd(x,y) 阅读全文
posted @ 2021-01-16 23:48 -敲键盘的猫- 阅读(172) 评论(0) 推荐(0) 编辑
摘要: ARC106 D - Powers 用二项式定理展开,把同类项合并到一起,差不多就是这样: 把两个括号内分别计算再相乘 #include <bits/stdc++.h> using namespace std; #define int long long void read (int &x) { c 阅读全文
posted @ 2021-01-14 20:48 -敲键盘的猫- 阅读(74) 评论(0) 推荐(0) 编辑
摘要: AGC006 B&D Median Pyramid Easy&Hard B和D关键步骤差不多,放一起了 假设已知底部的元素,如何判定顶部的数是否 \(\ge x\) ? 把 \(<x\) 的数赋为 \(0\) ,反之为 \(1\),因为只要判断是否在范围内,和具体值无关 结论:如果有两个 \(1\) 阅读全文
posted @ 2021-01-13 13:23 -敲键盘的猫- 阅读(108) 评论(0) 推荐(0) 编辑
摘要: AGC005 C - Tree Restoring 看到“树上最远点距离”这种东西,直径应该就有一些性质 把直径抽出来,直径中点的数值是最小的,当然可能有 \(2\) 个,但如果 \(>2\) 个就没戏了 然后直径的两端一定是对称且从中间向两边每次 \(+1\),如果从最小值到最大值某个值出现的次数 阅读全文
posted @ 2021-01-12 21:40 -敲键盘的猫- 阅读(88) 评论(0) 推荐(0) 编辑
摘要: AGC004 C - AND Grid 构造题。染色方案要求四联通,边界的行、列提供了一个很好的连通介质,且题目保证给定网格图中边界都为 \(.\) 具体做法:第一张图中把最左边一列涂黑,第二张图把最右边一列涂黑,当然必须涂黑的两张图中都涂黑。然后第一张图中把偶数行全部涂黑,第二张图把奇数行全部涂黑 阅读全文
posted @ 2021-01-12 21:07 -敲键盘的猫- 阅读(121) 评论(0) 推荐(0) 编辑
摘要: AGC003 C - BBuBBBlesort! 翻转相邻三个相当于交换 \(a_i,a_{i+2}\)。离散化把值域弄到 \([1,n]\),用尽量少的操作一使奇数在奇数位,偶数在偶数位,然后使用操作二一定可以让序列归位 每次操作一都可以让两个数奇偶归位,因为一定可以先通过操作二使一奇一偶相邻,然 阅读全文
posted @ 2020-12-26 21:14 -敲键盘的猫- 阅读(121) 评论(0) 推荐(0) 编辑
摘要: AGC002 D - Stamp Rally 多次询问,整体二分。具体一些,当前二分的区间为 \(l,r\),先设定答案为 \(mid\),判断是否可行,可行的往 \([l,mid]\) 递归,否则走 \([mid + 1, r]\)。关键在于如何快速判定是否可行。 用并查集维护连通块的大小,一种办 阅读全文
posted @ 2020-12-24 16:29 -敲键盘的猫- 阅读(92) 评论(0) 推荐(0) 编辑
摘要: AGC001 C - Shorten Diameter 枚举直径的中点。把距离过大的删掉。奇数个点枚举中间的边 #include <bits/stdc++.h> using namespace std; void read (int &x) { char ch = getchar(); x = 0; 阅读全文
posted @ 2020-12-24 16:16 -敲键盘的猫- 阅读(166) 评论(0) 推荐(0) 编辑