ZROI 19.07.31 AB班ACM

写在前面:非常感谢cjc和djh两位神仙带我,非常感谢他们给了我一次躺赢的机会。

虽然我被硬点成了代码手,但我写的基本每次都有一堆罚时。然而djh爷全部1A,tql。

题目按照一血时间升序,大致符合难度顺序。


中国剩余定理板子。由于我太菜了忘记怎么crt写了,所以码了很长时间。

有个邪道做法,由于只有三个模数,且只有第三个很大。可以枚举答案是第三个模数的多少倍,只需枚举\(17\times 107\)次。


djh爷打了个表发现\(n\geq 14\)的时候,答案全都是\(500\)

由于我zz所以读入用的int,然后RE了一发。


直接暴力,根号分治即可。

虽然\(250ms\)的时限看起来很不根号,然而你敢写就敢过……

感谢djh爷提供代码。


对于\(2n\)边形,我们可以先确定一个正\(n\)边形,然后每两个点之间找一个位置即可,根据圆周角定理,这些角一定都相等。

奇数的情况随便判一下就好。

我们挂了很长时间是因为没有意识到\(9\)边形里居然可以套一个\(6\)边形……我菜死了。

继续感谢djh爷提供代码,cjc爷提供思路,我负责给神仙递面包。


显然环内的每个元素都要分开,缩点求最长链即可。

没看见多组数据+输出忘记换行,被搞两次,mmp。

果然我写的代码一定有锅。


djh爷一眼看出是容斥,tql。

假设硬点了一个长度为\(k\)的前缀冲突了,剩下的随便选有\(26^{n-k}\),发现如果它的某个后缀也是原串的前缀就会算重。

然后发现就是个kmp,对\(next\)\(0\)的前缀容斥即可。


一血这么晚很可能是题面太长了。

发现一个置换中,一个奇环走两步长度不变,一个偶环走两步会被拆成两个长度为一半的环。

所以一个置换合法的充要条件是所有偶环出现的次数为偶数。

所以数据范围明明能出到\(10^6\)的。

然后就因为语言选错成功CE了,POJnb。

这题到最后整整三页CE。


这题比赛的时候直接没开,反正到最后才\(2\)人过掉。

然后题面非常不显眼的地方写出了重量加入和删除都是递增的,所以一个原来非常复杂的数据结构就变成了简单的队列。

因为带删除\(01\)背包现在也没人会做,所以考虑分块。

每次维护最后一块截止到每个左端点的背包。

删除的时候如果把最后一块删完了,就把最后一块的右侧一直到当前右端点全都看做新的最后一块,重构一下。

新加入的元素单独维护,询问时用单调队列合并两段背包。

当然,我只会口胡不会写。

每个元素只会被加入一次,重构一次。操作一个元素的复杂度是\(O(mod)\)


后缀数组板子,对每个后缀前后各找一个与它最接近的别的串的后缀,它的贡献是lcp+1。

我们队最后\(50\min\)开的题,我写+调了\(45\min\)过掉了,感觉手在发抖。

感谢djh神仙提供hack数据,不然我就调不出来了qwq


这题纸质题面数据范围写错了导致没多少人做

线段树维护一堆标记,我们队没开。

顺便这题其实是最晚一血的,然而不知道为什么放到前面讲。

加和除法操作不会影响\(\max\),两种标记可以直接合并。

暴力维护标记会爆long long,可以维护\(\log\)个标记,因为再进行除法就等价于区间赋值了。

其实这里我已经不知道老师在说什么了


拿到了这题一血,很荣幸。

虽然都是两位神仙带着,我啥也没干。

感谢djh神仙写的ntt,我是真的写不动多项式。

大胆猜结论,发现满足条件的集合要么是个\(0\)开始的等差数列,要么是个\(0,a,b,a+b\)的四元组。

等差数列很好做,四元组可以转化成多项式卷积。

djh爷作为全队唯一会写ntt的神仙毅然接下了重担,然后一发AC,tql。

而且他的ntt跑\(5\times 10^5\)只花了\(10ms\),太神了orz

posted @ 2019-08-19 08:04  suwakow  阅读(177)  评论(0编辑  收藏  举报
Live2D