AtCoder Regular Contest 123 比赛记录(vp)

AtCoder Regular Contest 123 比赛记录(vp)

首先提出,令我十分不解的两件事

  1. 为啥 Cry_For_theMoon 这么强
  2. 为啥 Cry_For_theMoon 这么可爱

感谢这位学妹,给我提供了很多帮助!!谢谢www

同时,她也让我认识到了我的菜。

比赛情况

赛时AC:A,B

赛后补:A,B,C,D

暂时我的水平还只能补到D题,E题可能得再修炼一些日子。我现在就算能(对着题解)把代码打出来,理解的也不够深刻,我能感受到。

如果是早期的题,我甚至能会到agc的f,但是现在的题似乎难了一些qaq

题解

A,B连我这种傻逼都会,略

C: 1, 2, 3 - Decomposition

注意到 \(3^n\) 差不多就是 \(10^n\) 的根号。所以写个暴力dp是根号的复杂度,可以做到1e5。

打一波表发现,好像答案都 \(\le 5\)

然后我们考虑这样做:如果能一步,就输出 \(1\);能两步,就输出 \(2\)...判到 \(4\) 步还不行,直接输出 \(5\)

注意到,每一个 “123” 数都可以写成 \(\sum a_i\times 10^i\) 的形式,其中 \(a_i\in \{1,2,3\}\)。那把它们(直接)加起来,不做进位,每个 \(10^i\) 前面就会得到一个系数 \(c_i\)

假设我们有 \(k\) 个 “123数” 加起来,那么 \(c_i\in [0,3k]\)​。

关于为什么不是 \([k,3k]\):注意到每个数不一定等长,如果当前的这个 \(i\) 超过了一部分数的最高位,而没超过另一部分数,那这个 \(c_i\) 就可能小于 \(k\)

写四个函数,check1,check2,check3,check4,分别检验:一步,两步,三步,四步

注意到 \(3\) 步以内不会发生进位,因为 \(c_i\in [0,3k=9]\)。此时只需要看一下每一位对不对就行了。

对于 \(4\) 步的情况,\(c_i\in [0,12]\),顶多进一位,把进一位的情况考虑一下就行了。

注意一个细节:如果碰到了前导0,那么我们需要考虑 \(k\) 变小的情况,因为可能有些数就没了

比如我们check3的时候,抹掉了最后一位,那么我们在递归的时候应该算 check1 || check2 || check3

D: Inc, Dec - Decomposition

我是参考了我学妹的做法,见 这里

妹妹又强又可爱,我prprpr

比赛实况

昨晚没睡好。我开始比赛前,洗了会脸,泡了杯咖啡,一口干了,才在8:40,开始了比赛。

我15min就秒掉了前两题,但是卡在了C。

卡到了40min左右,(按NOI比赛的经验)我意识到我不应该卡题,就去看了D:然而我并不会

根据上一次打比赛的经验,我隐约感受到它应该有一种神仙做法,但是我没想出来。我当时心态也慌了,CD切换着想,不定心。

注意到,给大脑开两个线程,是非常耗脑力的。再加上我休息不足,一杯咖啡也显得杯水车薪:比赛到1h多,我直接睡着了

我睡了多久呢?根据ManicTime显示,我从9:51:21,睡到了10:52:50,睡了1h多,睡到了比赛结束后的12min。

zps!你他*在干啥啊草,比赛还能睡着的吗?你到正式比赛咋办啊!!!**懒狗快他娘醒醒啊草

问题/总结

问题

心态乱,时间分配不当(对于CF/AT的比赛)

休息不足,身体跟不上大脑

思维不够敏捷,现有想题体系只能勉强应付OI比赛风格,不能适应AT的比赛风格

反思总结

(和上面对应)

时间分配上,不需要急,先把sb题做了,然后不慌不忙的做后面的题。也许会做不出来,但心态不能乱

好好休息,平常多注意锻♂炼

我还too young too simple,再多练练吧

posted @ 2021-08-10 14:14  Flandre-Zhu  阅读(109)  评论(0编辑  收藏  举报