文章目录
- 前言
- 考场
- 复盘
- T2
- T4
- 总结
前言
290分
100+30+100+60
整体来说还不错,没有挂分
但是T2应该可以拿到值域[1,000]的第二档写到60分的
一部分原因也是给T2的时间有点少 (十分钟)
本次第一次尝试了在考场上对拍
效果还是不错的,并不会消耗太多时间 (尽管还是最后眼看出的bug)
检查很重要!!!
T1和T3都在最后检查时发现了bug
如果没有发现后果不堪设想…
考场
先看题
乍一看:又有点凉
怎么T1T2都是数学啊喂?!
但仔细看了看数据发现暴力给的部分分非常足
T1T2无脑模拟就有90分
稍微心安了一些
T3是图论初看感觉没有太难,也许可做
T4没什么思路,预订状压的60pts
8:20
先看T1
先五分钟写了个60分的无脑暴力(U1S1这个暴力分给的真的有点太多了啊…)
再仔细看了看注意到a、b数列∑不超过5000
所以有值的会很少
直接枚举有值的数枚举它们的贡献就ok了
O(n+5000*5000)
8:50
转T2
异或相关我除了trie树啥也不会啊…
而且异或运算本来的性质就很少
带个平方使trie难以奏效…(不带平方其实就很水了)
脑中经过以上思想过程最终觉得写个暴力走人
又是异常好写
比上一题的暴力还好写
9:00
到T3
这题是我这次打算死磕的题了
(赛后想想也许应该把T4的60分写完再写这个)
吸取之前的教训果断反着做把删边变成加边
二叉树本身的优秀性质使它不需要剖就可以做到单链的log
然后设计个dp每次合并一直把dp更新根即可
但是我那个dp更新是两个log的…
加上链的log复杂度是O(nlogn3)
感觉1e5会假掉…
所以玩命的卡常减少无用更新(最后证明还是卡过去了)
写起来不是那么好写
9:50
但是这题感觉很可能会写挂啊…
于是写了个datemaker和暴力的checker
拍了几个n=100 m=1000的数据都一样感觉心安了许多(伏笔)
看看表没用多少时间 (因为我checker实在是太无脑了)
10:20
最后到T4
又想了想还是没有太好的做法
于是决定开始写状压
这题dfs一下再状压记忆化搜索不算太难写
但状压运算优先级不锅是不可能的
(就不能记住打括号吗!!?)
但也算老bug了不久就揪出来了
11:00
开始检查。
先把每道题的样例又过了一遍
T3又拍了几个,更加放心(又伏笔)
福至心灵,突然想到T1的致命bug:
如果c没有被同时有值的a和b更新,它至少可以取一个单独的ab中的极大值
赶紧改,也很好改
接着检查
开始阅读代码
阅读T3的时候发现我预处理的dp转移写了一个巨大的bug
把*写成+了!
这个bug我之前写的时候de出来了
但是我只改了下面更新dp的bug
忘记上面预处理是复制过来应该一个道理了…
最离谱的是我那个数据由于m>>n造出来的最后它的边基本都删完了,所以其实根本没有预处理,看不出来问题!
赶紧改,更好改
然后就差不多到点了
有点劫后余生的感觉
复盘
T2
纯数学
把异或运算写成奇奇怪怪的∑的形式
然后变变形
其实这个变形还不算太难,只是没有这个意识
不过60分做桶应该还是能拿的
T4
真心阴间题,60分不错了
关键在于利用vector作为下标设计dp
太草了
然后用map实现惊人的简单,还可以去重
然后再加一维 j 以实现不漏的去重的技巧很巧妙
只能说是学会了
总结
第一次用对拍很开心啦
但是数据做的还是出了大问题
下次需要吸取教训
加油!OvO