Day -4
上午开题发现一道都不会,跑路了,下午啥都没干,题目一道都改不来,感觉要完蛋了
Day -2
上午开题发现一道都不会,跑路了,下午啥都没干,题目一道都改不来,感觉要完蛋了
Day -1
做了一道 NOIP 2018 填数游戏
又写了个 NOIP 2018 保卫国王,叕叒双又挂分了
晚上在空间开了个 ldx buff /se
Day 1
看压缩包发现有字符串,之前更同学们说不考字符串感觉很愧疚,谢罪谢罪
开题发现 A 是拓扑排序题,用
u
l
l
ull
ull 写了一发
然后看 B 发现大概是个 kmp + 数点,编了个调和级数的做法
看 C 发现是个有点困难的构造,D 还没敢看
然后又想了下 A,发现分母大概是
6
0
11
60^{11}
6011 刚好比
2
64
2^{64}
264 大一倍
所以我又贴了个高精度,感觉有毒
然后写了发 B,用树状数组写成了
n
log
n
log
Σ
n\log n\log \Sigma
nlognlogΣ,感觉有
84
84
84 就放了一下
然后看 C,编了一个
2
n
2
m
2n^2m
2n2m 的做法,发现可以获得
0
0
0 分的好成绩
好久才反应过来他把范围放成样例了
然后优化了一下,编了个
n
2
m
n^2m
n2m 的做法,大概如下:
考虑一个颜色一个颜色归位
重新染色,将当前颜色设为黑,其余为白
现在我们可以将所有黑色放在堆顶,这样就只需要
m
m
m 次就可以归为
考虑如何换到堆顶,对于
a
,
b
,
c
a,b,c
a,b,c 三个堆,其中
c
c
c 为空
我们统计出
a
a
a 中黑色的个数
z
z
z,将
b
b
b 中挪
z
z
z 个到
c
c
c,然后将
a
a
a 依次放在两边最后在放回去
这样大概需要
2
z
+
2
m
2z+2m
2z+2m 次操作
考虑继续优化,上面的坏处是需要把
z
z
z 个放回去,但其实是不用的
我们按
z
z
z 排序做小到大做,这样就是
2
m
2m
2m 次,所以总共是
n
2
m
n^2m
n2m 的
然后写了一发
看 D,发现有模数,感觉 ldx 稳了 感觉要给 ldx 丢脸了
想了一会儿发现每维独立,一个坐标的次数是所有的
min
\min
min
所以只需要对没个
min
\min
min 统计贡献
这个用指针扫就可以了,复杂度大概是
O
(
k
2
W
+
k
W
log
W
)
\mathcal{O}(k^2W+kW\log W)
O(k2W+kWlogW)
发现大样例跑了很久,呆了一会儿才发现排序可以两边归并,于是就是
O
(
k
2
W
)
\mathcal{O}(k^2W)
O(k2W)
这时大概都 12 点了,于是把剩下的 20 弃了,准备 work 一下 C 的 30 分
被降智了很久最后 15 分钟才想出来 /kk,大概如下:
上面做法的缺陷是拿出来
m
m
m 次放回去
m
m
m 次
注意到是不需要放回去的
阴影部分表示可能有黑色的,圈圈是黑色的点
进过上面几次操作过后我们可以整出个全白的,用类似的思路进行操作
设有
a
,
b
,
c
,
d
a,b,c,d
a,b,c,d 四个堆,其中
d
d
d 是空,
c
c
c 是全白
我们统计
b
b
b 的个数
z
z
z,将
c
c
c 中的
z
z
z 个挪到
d
d
d
然后将
b
b
b 中的黑色挪到
c
c
c,将白色挪到
d
d
d
这样就可以将一个堆排好序
观察操作次数,大概是
z
+
m
z+m
z+m,所以总次数是
O
(
n
2
m
2
)
\mathcal{O}(\frac {n^2m}2)
O(2n2m) 的
最后两堆用上面说的方法做就可以了
由于时间不够了,而且教练含我检查文件名 ,CSP 我写的 snake 所以只有弃了
同时看了下 B,发现可以优化一下变成
n
log
n
+
n
Σ
n\log n+n\Sigma
nlogn+nΣ 然后改了一发
下午同学们帮我测了一下
发现 A 高精度卡 T 成 60 了,还没有暴力分高,我退役好了
B 卡 T 成 84,D 卡 T 成 60 感觉有毒 /yun
希望最后能多过点 & ldx 这 buff 咋这么强 /se
啥时候才能像 cxr 聚聚一样稳稳啊