CSP2021游记
前言
额,这是在李×泽同学的强烈要求下更的,大概是想找乐子罢
游记
Day0
在考csp与不考间被反复拉扯,心态从惊愕到狂喜再到失落最后已经波澜不惊。。。躺平了
总的来说就是,上午做了会DP,下午随便看了点板子,晚上回家好好休息了一下。
躺在床上想了想有哪些好久没用到的联赛级别套路算法:三分、数位&区间DP、差分约束。。。然后就想不到了
Day1
上午睡了好久,中饭早饭一起吃,吃完就去湖大了
开考
考前5min发的密码,总共花了20min看了T1、T2、T3,看完题一阵狂喜。。。
woc,我昨晚躺床上yy的东西一发中了俩???(T1直接当成三分了
然后心中有“底”了,开始想T3,想了大半个小时,有思路但不太清晰。。。
T1
一个小时的时候开始打T1了
T1先写了个 \(n^2\) 暴力保底,然后写了个三分,\(n^2\)暴力,共计差不多花了40min
T2是个大马蹄,我就先不拍T1了,先写T2.
T2
四点一十左右开始写T2,上来就设了个 dp[l][r] 表示l到r的区间合法的情况数,然后分类讨论一阵猛写:
1.左端填*号
2.右端填*号
3.左右填对括号
至于左右端都有*号,应该会在递归中得以解决。。。
看上去很对,结果我就算重了。。。
然后上了个厕所
于是改成了2.0版,dp[l][r][0/1]表示当前区间[l,r]能不能在两端填*号的方案数
然后又算少了。。。
我一度产生了去写\(O(n^4)\)的想法,即:枚举左右端填*号的位置转移(实际上这玩意儿写了一半)
后面写着写着发现拿衣服了,一维不够我就再开一维嘛。
继续上了个厕所
于是有了3.0版本 设dp[l][r][0/1][0/1]表示[l,r]区间能否在左端填*,能否在右端填*的方案数,
然后写完编译大小样例一遍过???真是不幸中的万幸
但是全问号+k=500的情况,我要跑5s??? 啥子鬼哦,躺平了
这时候5点50了,啥也不敢干了,赶紧开T3
T3
又想了10min,但是时间压迫下,越来越急
六点整,开搞T3,上手直接写了个40分,花了15min吧
T4
5min看了T4,想了一下
反正也写不完了,唉
下考
最后检查了10min,确保代码无误。。。(结果T3愣是忘记puts-1了)
考后
饿疯了的我和我妈直接在悦方点了个四人餐。。。从快八点一直吃到了九点半
回家路上又碰到了zhouxj和他的两个“恰巧碰到”的女同学,撑炸了的我开始散步,围着南门口到江边兜了一大圈一回家就睡了
Day n
T1好像不能三分???没事,我三分还微绕了,微绕了20呢,ccf的数据嘛。。。不怕不怕
10.30
果然ccf数据好评,T1有75,T2要跑5s的代码居然放过去了,T3没锅。。。
只是T4,60分的网络流我没写哇。。。。