博客食用更佳~ https://www.cnblogs.com/czyty114/p/15186947.html
有史以来打的最烂的一场比赛,留此文纪念~
A
$\;$
比较水,暴力模拟都能过。
总结:提高代码能力
B
$\;$
(心理阴影题,想到了但是又没完全想到…)
要求这个东西:
$$
\sum_{i=2}^n f_{\lfloor \frac{n}{i} \rfloor}
$$
$\;$
暴力做可以数论分块。
但4e6显然不行。所以考虑正常的转移没办法做,想想有什么奇技淫巧(bushi
设上面这玩意为$S(n)$,考虑$S(n-1)$和$S(n)$有什么区别
显然对于会多一个$f_1$,这个特殊处理一下就行了。
而其余的$i$,你会发现很多$i$都满足$\lfloor \frac{n}{i} \rfloor=\lfloor \frac{n+1}{i} \rfloor$,这部分就是一样的
什么样的$i$是不一样的?
显然是$n$的因数,设$ic=n$,那么对于$S(n)$产生贡献的是$f_c$,对于$S(n-1)$产生贡献的就是$f_{c-1}$,注意这里$c$也是$n$的倍数
想到了因数,我却总是想着枚举$i$的时候统计$f_{\frac{n}{i}}$这个东西,却忘记了我们把$i$看成$c$就可以了。。。(日)
C
$\;$
构造题总是不会做(
考虑这种翻转一个前缀,让每个数归位的题,你又移动了之前已填好的数肯定是很让人头疼的,考虑如何避免这种情况
就以$(n-1,n)$,$(n-3,n-2)$两个数两个数地放在序列的末尾,这样我们翻转前缀就对后面已翻转的数没有影响了
然后每一组最多5次就可以了
D
$\;$
长者讲过,对于选若干个限制值域$[1,n]$的数,满足:
$a_1\leq a_2\leq a_3\leq … \leq a_r$,
变成$a_1<a_2+1<a_3+2<a_4+3…$就可以了,这样直接用组合数。
怎么维护小于号这东西,如果正着做可以用平衡树,但倒着做貌似可以树状数组,但我不会。
E
$\;$
维护一个集合$S$,代表目前已经打完怪的点的集合(可以在里面四处游走)
考虑怎么去增广这个集合$S$
直接去暴力dfs,如果发现dfs了几路最终都撞到墙(打不过的怪),其几条路径无法相遇,那就GG了。
否则考虑三种情况。
(1)碰到了原先在$S$中的点,发现直接把这个环加进$S$
(2)碰到了dfs路径上的点(返祖边),也直接把这个环+路径加进$S$
(3)两条dfs的路经连起来了(横叉边),考虑两条路径哪个打完后能量多,从多的那一面一路杀过来,显然两条路径构成的环上的怪都能打过。
然后直接去二分,然后一次增广是$O(m)$,显然最多会增广$n$次
复杂度大约是$O(nmlogC)$,C是能量的值域