比赛记录及总结

2024.8.4 联赛模拟

by \(\rm \color{black}C\color{red}ommand\text_block\)

  • 赛时

5min 想出 A,写了 10min,但是柿子不清晰抄错导致调试 40min。T2 起手一个暴力拿到 40pts。后面马上猜了一个性质,发现大概是对的,直接开始写线段树。后面心里有些忐忑拿了一个 \(\rm checker\) 去检查大样例是否符合这个性质,结果发现有一两个点不符合,于是没有再想这个做法的细节了。但是没有注意 20pts 的部分分导致瞎想 1h。T3 没看懂题遂跳,此时 2.5h,只拿了 140pts 有些慌张。 T4 开题后发白送 15pts 想着后面再写,发现树的性质有 47pts,于是花了 20min 一直在往容斥、\(\rm DP\) 的方向想,但是其实连题目都没有分析完全,后面 30min 在 2、4 横跳,最后 15min 才想起来暴力没打,狂码但最后还是没有调出来。

  • 赛后

至今打的最菜的一场模拟赛,也是离退役最近的一次。

赛后发现 A 数组没开两倍挂了 25pts,退化成暴力分。B 的特殊性质的转化一下就可以变为正解,而且后面讨论了一下线段树做法确实是对的,\(\rm checker\) 的问题导致我直接痛失 60pts。最后发现 C 是除了 A 以外最简单的题。D 的树做法只需要分析一下题目然后简单分治即可。

  • 总结
  1. Think twice, code once.

  2. 估计好暴力所需要的时间,最后 1h 不再去想正解。

  3. 前面 20min 先把所有题看懂,不要形成固化思想:“我不擅长树论,图论” 之类的,都先试试。

  4. 做题时心态要好,深呼吸放松不要紧张,先对题目进行足够的分析后再去想做法而不是猜测知识点再去想做法。

8.12 DP 专题

  • 赛时

早上 \(\texttt A, \texttt C\),开局 \(3min\) \(\texttt A\)\(10min\) 写完调完。然后开 \(\texttt C\),被题意折磨 \(10min\) 后终于看懂了,然后先看了看部分分发现好像没有什么特殊性质。接着马上转到图上做,发现是一个 \(\rm DAG\) 独立集问题,想了 \(20min\) 后觉得肯定有什么特殊性质,手玩一下发现是类似树的东西。一个点只有两个子树,于是在想怎么去重,\(30min\) 无果,于是马上写了一发暴力。接着继续死磕正解,把图转过来发现是一个网格的样子。这个时候想到一个更好的暴力,是一个状压,但是此时已经 \(1h30min\),感觉比较难写然后就没管,过了 \(10min\) 开始想如何多拿点部分分,但是依然不会。最后 \(100 + 40\) 遗憾离场。

下午 \(B, D\),开题并没有秒掉 \(B\),前面一直在往贪心的方向想,\(\texttt 10min\) 后发现第一问直接 \(\rm DP\) 做就可以。然后发现第二问不会做,非常痛苦地磕了 \(\texttt 1h\) 想到一个乱搞的东西,大概就是每次决策时选尽量大的,这样就可以让前面的尽量小。但是觉得很不对,于是再想了一会后去了 \(\texttt D\)\(\texttt D\) 开题,肃 然 起 敬,只会 \(O(n! \times {2^k}^n)\),甚至没有一分,看了一下有 \(k = 1, k = 2\) \(30pts\),想着最后 \(30min\) 再想,于是回去 \(\texttt C\) 了,\(\texttt C\) 想了 \(20min\) 后,此时已经 \(\texttt 1h40min\),想着不能一分没有啊,于是开写。写了 \(\texttt 20min\) 后开调,一看只有 \(\texttt 15min\) 非常慌,手抖的调试。最后 \(\texttt 5min\) 激动的调了出来,一下过了两个小样例,激动的测 \(\texttt {traffic3.in}\),结果 \(\texttt fc\) 无情的告诉我一堆错,此时我崩溃了,然后结束了,出场估分 \(0 + 0\),问了周围一圈好像都是这个分,于是心里好受了点。

  • 赛后

最终分数:\(100 + 40 + 95 + 0 = 235\)

赛后发现 \(B\) 除了 \(\rm traffic3\) 过不了其他 \(5\) 个大样例都过了,\(\texttt C\) 题的状压就是正解?问了 \(\rm \color{black}l\color{red}arsr\),评价是 \(O(能过)\)\(\texttt D\) 题神秘题没人过。\(\texttt B\) 数据好像有点水,但是下午大家打的还是一般般,\(100+\) 都很少。\(\texttt C\) 的乱搞调整一下就过了。

  • 总结:
  1. 一道题做不出来可以考虑乱搞,不要拘束于暴力和正解两种做法,可以用一下一些符合直觉的东西。

  2. 可以不只用确定时间复杂度的算法,运用时间复杂度玄学的算法可能也可以拿到很好的分数。

8.14 DP 专题 Round 2

  • 赛时:

\(\texttt A\) 还是开题秒,写加调过了 \(\texttt 40min\)\(\texttt B\) 开题比较唬人,想了 \(\texttt 5min\) 去了个厕所然后会了 \(O(n^3k)\) 的做法,数了一下可以过 \(60pts\),感觉性价比很高直接写了。写了 \(\texttt 30min\) 后过了大样例,发现 \(n = 500, k = 60\) 跑了 \(\texttt 10s\),感觉有机会啊,然后花了 \(10min\) 卡了常,开了 \(\texttt O2\) 直接 \(6s\) 了,扔掉不管了。\(\texttt C\) 发现暴力很好写啊,算了一下可以过 \(40pts\)\(30min\) 写完调完,发现 \(n = 90\) 只跑 \(5s\),卡了一下直接 \(3s\) 了,感觉可以过很多啊。于是在 \(2.5h\) 的时候去了 \(\texttt D\),发现是奇妙计数,于是先想了判定然后转化到图里去做,花了 \(40min\) 思考无果,于是写了 \(O(2^n n)\) 暴力,但是到比赛结束都没有过,怎么会是呢?。估分 \(100 + 60 + 60 + 0 = 220\)

  • 赛后:

实际 \(95 + 95 + 60 + 15 = 265\)

\(\texttt A\) 玄学挂了 \(5pts\),至今不知道原因,\(\texttt B\) 意外的拿到了很好的分数,后来得知正解 \(O(n^3 \log k)\),怪不得很难卡。后来 \(\rm \color{black}{S}\color{red}{hxt\text _plus}\) 教了我卡常的正确芝士,然后大样例 \(3.5s\) 爆过。\(\texttt C\) 是一个套路题,考场两个结论都想到了但是还是不会做 /fn。\(\texttt D\) 又是坐标系转化?!% \(\rm \color{black}{l}\color{red}{arsr}\) 坐标系大蛇。

记录

  • 总结:

暂无。

8.16 线段树专题

非常好线段树,全都是树状数组。

  • 赛时:

\(\texttt A\) 开题,不会,感觉很难,遂先看了一遍题,前 \(3\) 题看完都有点想法。然后看到 \(\texttt D\)肃 然 起 敬,线段树合并优化 \(\rm DP\) 板题。\(\texttt 10min\) 看完后回到了 \(\texttt A\),想了两个错的做法后终于枚举到了正确做法,遂开写,\(\texttt 30min\) 后终于写完了,调了 \(\texttt 10min\) 发现清空不完全,难评。然后开 \(\texttt B\) 想了 \(\texttt 10min\) 会了 \(O(n^2 \log n)\) 做法,数了一下有 \(\texttt 60pts\),想着晚点再写,然后再磕了 \(\texttt 30min\) 会了一个乱搞,但是还是不会怎么做,然后就去了 \(\texttt D\),想了一会细节开写,写了 \(\texttt 45min\) 后发现样例过不了,然后调了 \(\texttt 15min\) 后发现错了,然后发现第二个大样例过不了 呜 呜 呜,手造样例后又调了 \(\texttt 15min\) 终于过了,大样例只跑 \(0.3s\)?!肃 然 起 敬

此时已经只剩 \(\texttt 1h\) 了,于是把 \(\texttt B\)\(\texttt C\) 的暴力写了,还剩 \(\texttt 20min\) 想了一下 \(\texttt C\)\(\texttt A\) 性质,无果。估分:\(100 + 60 + 20 + 100 = 280\)

  • 赛后:

最终:\(100 + 60 + 20 + 100 = 280\)。最稳的一集。

赛后发现 \(\texttt B\) 的正解只要在乱搞上想到一个小性质就可以了,\(\texttt C\) 可以根号平衡直接过掉 /oh,% \(\rm \color{black}{S}\color{red}\text{hxt_plus}\)

8.21 树上问题专题

打的比较烂。

  • 赛时:

\(\texttt A\) 发现不太会,然后往后面看了看,发现除了 \(\texttt B\) 比较好做其他都比较困难,遂回到了 \(\texttt A\),分析了 \(\texttt {20min}\) 左右之后猜了一个结论,然后分讨了一下应该就做完了,慢慢写写了 \(\texttt {30min}\),调了一会就过了大样例。\(\texttt B\) 马上会了树剖 \(O(n \log^2 n)\) 做法,但不太能过。\(\texttt {10min}\) 后注意到是起点是根的路径做了一个小转化,发现了一个小 \(\texttt {trick}\),就会了 \(O(n \log n)\)。马上开写,码量有点大写了 \(\texttt {1h}\)。写完调了 \(\texttt {20min}\) 然后就 \(2.5s\) 跑过了大样例。还有 \(1.5h\),不想卡常然后就去了 \(\texttt{C}\),想了 \(\texttt{30min}\) 无果,于是开始拼暴力。最后拼了 \(20 + 10\),估分 \(100 + 100 + 20 + 10 = 230\)

  • 赛后:

最后 \(80 + 95 + 20 + 10 = 205\)\(\texttt A\) 少讨论了 \(\texttt {Corner Case}\) 挂了 \(\texttt{20pts}\)\(\texttt B\) 被卡常掉了 \(\texttt {5pts}\) /tn。\(\texttt{C、D}\) 的部分分怎么这么多?!

  • 总结:
  1. 看题不仅仅看题面,还要看部分分,注意哪些部分分较多的题目。

  2. 写代码前考虑好所有情况,这样写的时候可以快一点。

posted @ 2024-08-12 22:12  Little_corn  阅读(37)  评论(0)    收藏  举报