• 周四. 12 月 12th, 2024

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

AtCoder Regular Contest 123 比赛记录(vp)

admin

11 月 28, 2021

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 imes 10^i) 的形式,其中 (a_iin {1,2,3})。那把它们(直接)加起来,不做进位,每个 (10^i) 前面就会得到一个系数 (c_i)

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

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

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

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

对于 (4) 步的情况,(c_iin [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,再多练练吧

发表回复