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