A
按题意模拟即可。
代码。
B
按题意模拟即可。
代码。
C
让我们统计连通块的数量,用并查集维护即可。
代码。
D
\[N=p^2q\\ p=\sqrt{\frac{N}{q}}, q=\frac{N}{p^2} \]所以只要知道 \(p, q\) 中的一个就能知道答案。
然后根据 \(N=p^2q\),可知 \(\min\{p, q\}\le \sqrt[3]{N}\)。
直接枚举即可,时间复杂度 \(\mathcal O(\sqrt[3]{N})\)。
代码。
E
从 \(1\) 开始遍历每条边,如果到了在之前路径上没有出现过的点,那么简单路径数量就加 \(1\)。
因为 \(d_i\le 10\),其中 \(d_i\) 表示第 \(i\) 个点的度数。而且让我们求 \(\min\{10^6, K\}\),所以时间复杂度为 \(\mathcal O(10\min\{10^6, K\})\)。
代码。
F
字符串 Hash,注意 Hash 的值不能用 unsigned long long
要用 __int128
,就是因为这点,我还以为出题人卡 Hash。
我们枚举 \(i\),然后求出 \(i+1\sim i+n\) 的 Hash 值,再求出 \(1\sim i\) 翻转后的 Hash 值和 \(i+n+1\sim n\times 2\) 翻转后的 Hash 值。
接着算出 \(i+n+1\sim n\times 2\) 翻转后的字符串 \(+\) \(1\sim i\) 翻转后的字符串的 Hash 值。
这个靠上面两个值即可求出,具体见代码。
标签:10,ABC,Hash,代码,sqrt,284,sim,翻转 From: https://www.cnblogs.com/hcywoi/p/17066330.html