一句话CF

目录

  • \(\bf {Round \ \#500 \ (Div. \ 1)}\)
  • \(\bf {Round \ \#589 \ (Div. \ 2)}\)
  • \(\bf {Avito \ Cool \ Challenge \ 2018}\)
  • \(\bf {Round \ \#545 \ (Div. \ 1)}\)
  • \(\bf {Round \ \#454 \ (Div. \ 1)}\)
  • \(\bf {Round \ \#575 \ (Div. \ 3)}\)

感觉我做了很多CF题,零零碎碎,而且几乎都是水题
所以感觉用处不大。。所以稍微理一理。。。

那就从我打的第一场CF Round #500 开始。
这个数字好整啊(胡说,512才整)

为了方便看中文题意,链接就放洛谷的好了。

依然是给我自己看的,所以是不知所云系列。

\(\bf {Round \ \#500 \ (Div. \ 1)}\)

  • D. AB-Strings 每次操作尽量都让段数-2,用个链表维护串串,一堆特判就过了,人类智慧题(所以这题的核心大概是对各种特殊情况的判断)
  • E. Cycle sort ,loj 上的翻译好一点。观察到一个结论,任何排列都可以两步换出——先换大圈,再换小圈的第一个,但这样换的总次数多了圈数次。所以再考虑下 \(s\) 的限制,并且要把所有圈圈尽量连的大一点。(怎么这么烦,还要输出方案QAQ)

\(\bf {Round \ \#589 \ (Div. \ 2)}\)

  • D. Complete Tripartite 容易发现两个没边的点一定在同一个set里,所以暴力就好了,注意压复杂度。
  • E. Another Filling the Grid
    \(f[i][0/1]\) 表示一行里前 \(i\) 个数有无 \(1\) 的方案数,可以DP,或者显然 \(f[i][0]=(k-1)^i\)\(f[i][1]=k^i-(k-1)^i\)
    容斥:\(ans=\sum_{i=0}^{n-1}(-1)^i \cdot {n \choose i} \cdot (k-1)^{ni} \cdot f[n-i][1]^n\)
    DP:用 \(g[i]\) 表示 \(n \times i\) 矩阵合法的情况, \(g[i]=f[i][1]^n-\sum_{j=1}^{i-1} {i \choose j} \cdot (k-1)^{ni} \cdot g[i-j]\)
    比赛时我两种都写了,两种都写错了。。。不想说啥了。。。。。。
  • F. One Node is Gone 好像从度数入手就可以了?没啥意思的分类讨论题,不太想写

\(\bf {Avito \ Cool \ Challenge \ 2018}\)

  • G. Mergesort Strikes Back 看了 \(n^n\) 次的题,依然想不出来。首先我们考虑两个序列的归并,我们可以将这两个序列分成若干块,块的起点满足它左边的数字全部比它小,然后归并就相当于把块按起点排序。再考虑计算两个底层块的贡献,发现第一个块的第 \(i\) 个数和第二个块的第 \(j\) 个数对答案的贡献是 \(\frac{i+j-2}{2(i+j)}=\frac{1}{2}-\frac{1}{i+j}\)(如果这 \(i+j\) 个数的最大值在 \(i\)\(j\) 上必然不贡献逆序对,否则有一半的概率贡献逆序对)。

\(\bf {Round \ \#545 \ (Div. \ 1)}\)

  • F. Matches Are Not a Child's Play 发现 up x 操作就是把之前的根到 \(x\) 这一段丢到删除序列的最后,所以可以用LCT维护,up实际上就变成了makeroot。然后可以考虑给每条实链一个标号,表示删除顺序,一个点在删除序列中的位置=标号比它小的点数+splay里右儿子的数量,标号比它小的点数可以用树状数组维护前缀和……因为愚蠢的错误续了两天。。

\(\bf {Round \ \#454 \ (Div. \ 1)}\)

  • 454和545可还行。。
  • D. Power Tower 扩展欧拉定理:当 \(b \geq \varphi(p)\) 时,有\(a^b \equiv a^{b \ mod \ \varphi(p)+\varphi(p)} (mod \ p)\)
    一个数经过logn次不停取phi就会变成1,所以递归算就行了。但是写着很晕。。要把快速幂也改成扩展欧拉定理的形式……

\(\bf {Round \ \#575 \ (Div. \ 3)}\)

  • F. K-th Path 这个数据范围是假的。只要前 \(K\) 小的边,然后跑 floyd,复杂度有点炸,但是 O(可过)

你可能感兴趣的:(一句话CF)