赛时安排
7:40~8:00
看完题,发现T3是原题
依稀记得是多项式加速第一类斯特林数
保险起见先写写了个暴力求第一类斯特林数
一下就过了样例
因为有前车之鉴,所以不敢去写多项式,先去看前两题了
8:00~8:20
T2的
k
≤
3
k\leq3
k≤3很奇怪
k
=
1
,
k
=
2
k=1,k=2
k=1,k=2都很好做
但是3就没有什么性质
推了一下,发现对于一个左端点,连续区间按位与的变化是
O
(
l
o
g
a
i
)
O(loga_i)
O(logai)级别的
因为每一位如果变成0就不会变了
可以对每一个二进制位开个桶,在桶里二分找后面第一个会使得当前为从1变成0的位置
然后这样的区间个数是
O
(
n
log
a
)
O(n\log a)
O(nloga)的
然后查询的时候,把询问离线,用一颗线段树维护就行了
然后就赶紧写
8:30~9:00
写T2
9:00~9:40
写完之后,码了个暴力对拍
正确率没什么问题,但是常数很大,跑了2.3s
加上快读,把线段树改成树状数组,发现只跑了1.7s
但是还是有被卡的风险的
测试了一下发现是输出竟然输了800ms
改成快写,就跑进1s以内了
9:40~10:10
T1没有思路,写了个
O
(
n
m
2
)
O(nm^2)
O(nm2)的做法就弃了
期望得分45pts
10:10~11:15
快速回忆了一下如何求第一类斯特林数
似乎只需要一个NTT和一个倍增
就赶紧码,码完拍一下,然后再卡卡常,应该问题不大
11:15~11:50
检查,对拍