csp-s2022游记
10.29
民间数据:
洛谷 \(95+85+60+44=284\)
infoj \(90+40+40+44=214\)
输麻了
赛时经历
开考前发现前面坐着 Qiuly,好可怕。
开局一小时,写了给t1暴力,甚至写了个记忆化,幸好发现是错的。
第二个小时,写了t2,谁知道能写成这鬼样:
void build(int p,int l,int r,int opt){
if(l==r){
mx[p]=mn[p]=a[opt][l];
if(a[opt][l]<=0){
mx_less[p]=a[opt][l];
mn_more[p]=inf;
}
if(a[opt][l]>=0){
mx_less[p]=-inf;
mn_more[p]=a[opt][l];
}
return;
}
int mid=(l+r)>>1;
build(ls(p),l,mid,opt);
build(rs(p),mid+1,r,opt);
push_up(p);
}
这两个 if
是人能写出的吗???大样例竟然能过!挂大分。此时发现机子上没有Linux,真不错。
又想了半个小时t1,还是啥都没有想出来。
开始写t3暴力,发现了规律:满足条件的图,各点出度都为 \(1\),以为赢麻了,于是写了个 \(O((n+m)q)\) 做法。???不能理解在写什么,明明 \(n\) 是可以边处理便算出来消掉的,考场上也想到了,但以为没影响就没写了。 (\(60 \rightarrow 40\))
离下考还有 \(1\) 小时,开始写 \(t4\),发现可以 dij
\(\ O(q(n+m)\log n)\),拿 \(44pts\),拿完跑路。(希望CCF不要闲得慌造菊花图 )
还有半小时上了个厕所,突然发现t1可以写最优性剪枝,马上写了。(为什么没想出对一个点的所有能到达的点按点权排序,以CCF用脚造数据的习惯,这不肯定满了吗。)
最后 \(10min\),没时间检查了,换个Linux机测下代码能不能跑。
出来一对答案,发现t2思路是对的,很高兴。
晚上到家看代码发现细节错了,心态小崩。
题外话
今年真的蠢了,明明思路都出来了却写错了,烦躁,总共挂了 \(90pts\),不会没有省一吧。还有 Qiuly 键盘敲的真快,属实被影响到了。
update at 21:56
有网友告诉我有Linux,只是不像往年那么明显???不能理解。
update at 22:16
亲测洛谷t2开 __int128
,\(inf\) 设为 \(1e12\) 可过,有无大佬讲解一下。
update on 11.8
CCF数据真的水 \(95+85+40+44\),成功成为HN前80名中唯一一个没过一题的。