2021.5.21 模拟赛

第一次 AK 校内模拟赛 && rk1,不过只是题目简单,侥幸而已,并不能体现自己水平真有这么高。不过说明还是有进步的,继续加油。

就讲下 T3。

小球

【问题描述】

nyz!ysu! 同学有两个杯子,第一个杯子中有 AA 个小球,第二个杯子中有 BB 个小球。 (0<A+B<2147483648)(0 < A + B < 2147483648) 。小球可以从一个杯子被拿到另一个杯子,但是每次从一个杯子拿到另一个杯子的小球的数量必须等于另一个杯子中小球的数量。 nyz!ysu! 同学需要弄清是否能在若干次操作后将所有的小球移到同一个杯子。 (( 杯子容量 A+B)\geq A+B) ,如果不能在有限的次数内完成则输出 1-1

【输入】

两个非负整数 AABB

【输出】

如果能在有限次数内完成,输出这个操作次数,如果不能完成,则输出 1-1

【解法】

考场觉得暴力模拟不能过,就打表找了规律。

模拟 aabb 的变化,构造出答案树,发现每一层 aabb 前系数的绝对值和都是 22 的幂次。最后要求有一个值为 00,显然形如 4b4b8a8a 不可能为 00,那么为 00 的应是如 a3ba-3b 这种,解得 a=3ba=3ba+b=4ba+b=4b。因此 a+ba+b 一定是 22 的幂次,次数即为其的幂次。

总结

【这是好的】

  1. 多做题目总结。T1 之所以能做,还是因为其涉及到的知识点和做法:中位数、计算区间和为特定值的区间个数之前都有做过。这说明题目要多做;不仅要多做,还要常总结,必要的话将一类题型总结;不仅要总结,总结了不去复习还是没用的(就像之前模拟赛的 T3,出现做过的题目不会的情况),要抽出时间去看。

  2. 算法掌握牢固。T2 就是数位 dp 的板子,说明算法还是要多学,但一定牢固(最起码考场碰到模板一定要会做,当然还要拓展出去),多刷题(起码把这个算法的基础模型刷完,大概 1010 题以上)。

  3. 用对考场策略。T3 事实上自己考场并没有看出,但没像之前那样坐以待毙,而是选择正确的考场策略:对于这类题目(数论等),没有想法时一定要打表找规律,但也不能只放在找规律上,忽略了题目的本质(就像之前 CF 的一道题一样),还是要思考题目的性质。比如这题如果没有一开始模拟数据时发现答案与 22 的幂次有关,后面也不会发现规律。

  4. 谨慎比赛。一道题不管有没有思路,一定要先写暴力,写完正解之后一定要对拍,文操等基本事项一定要注意。

【还要改的】

  1. 提高代码能力。不要过于依赖对拍、大数据等来保证代码正确性,应该尽量做到一遍写对,同时一定要注意的一点:写完后不要直接测样例!一定要在最冷静的时候静态查错,否则浪费的时间不堪设想!也可以边写边调。

  2. 专注于题目。考试的时候不要去想别的事情,应该专注于题目本身,就看好眼前的题目,把它做出来就好了,想太多反而会影响成绩。