最近打的三场比赛的总结

10.25 上午 省常中模拟赛

比赛题目刚发下来,看到出题人之后我就变得紧张起来,因为暑假的时候也做过一份他出的题,题目难到连全场最高分也不过 100 多分,所以又一次做到他出的题难免有些心理阴影。

这种心态直接导致了我在第一题上的失误。由于在心里认为这场模拟赛的难度应该较高,导致我对于第一题几乎不假思索就认为是动规,而根本没有往更简单的方向去想。我一开始想到的是区间动规,但是发现只能拿 50 分,想了一会儿还是没什么思路,于是先把区间动规打好然后打第二题。

第二题是一道比较不错的题,但是由于强的数据不好出所以只要暴力加上优化就能轻松 AC。而我当时并不知道数据强弱,于是抱着拿部分分的觉悟很快写完了暴力,并没有在这道题上多耗费时间。最后结果也是挺让人惊讶的。

第三题其实不难,尤其是与 NOIP 的第三题相比较更是显得容易。但是第三题的题目描述以及输入十分繁琐,直接导致了我的烦躁心里,读了很多遍题目才理解了题意。在这种状况下我下意识地认为第三题是很难的题目,而 60 分的分数又是可以轻松拿到的,于是我没有多想就把 60 分的部分写完,然后把第三题放在了一边。考试结束之后还是有些后悔,因为其实只要稍微思考一下不难想到正解。

打完三道题的骗分部分大概用了一个多小时,然后开始想第一题的满分算法。用了很久想到了线性动规,复杂度完全没问题,但是实现以及调试又花了很久,而与之前写的区间动规对拍发现有不一样的地方,然后手工模拟了好几组数据,最终发现一开始写的区间动规居然是错的。之后我就没法对拍了,只能对比较小的数据手工模拟对拍,而在手工模拟的时候发现,每次从左往右直接模拟得到的答案居然和动规得到的答案一样。抱着尝试的心态我用栈实现了一下模拟算法,然后对拍发现动规和模拟对上了。动规我调试了一个多小时,一百多行代码;而模拟只要一个栈,代码长度不超过 20 行。这时候已经没有时间再去写第三题了,因为第三题即使想到了,要实现也是需要不少时间的。

然后又转向第二题的一些小优化,第二题优化写完差不多时间结束。

总体来看我的策略还是正确的,先拿暴力分,再想满分算法。如果我当时没有放弃第三题而去专攻第三题的话,也许第三题能 AC,但是很可能会失掉第一题的大量分数(因为一开始的区间动规写错了)。而事实上第三题我只写了十分钟的代码就拿到了 50 分,性价比还是很高的。

但是不足的地方就在于心理状态。畏难心理导致错误估计,以至于花了太多的时间在最简单的第一题上。如果能够静下心分析第一题,应该不难想到模拟算法的正确性。

10.26 上午 学军中学模拟赛

和前一天一样,看到出题人的名字之后顿时紧张。

然后开始看第一题,看了几遍之后没有看懂。

然后看第二题,发现是贴吧上某人求助的题目,自己曾经看到过但是完全没有关注解法是什么,所以比赛的时候就开始感到后悔。题目很好懂,但是完全没有思路,感觉最多只能骗到 10 分。

再看第三题,静态区间查询。线段树是我比较熟悉的数据结构,所以也有想到过线段树,但是并没有细想。看数据范围发现 70 分很好拿,于是按照往常的套路写了 70 分的算法,自己出了几组小数据检查了一下发现没问题,然后开始做第一题。

对第一题手工模拟了几组小数据,发现了一点规律,有点子问题的样子,于是毫不犹豫写了 DP 方法,感觉能拿 50 分。再继续乱搞,发现其实很多状态完全用不到,而且有点辗转相除的意味在里面,所以写了一个类似于 GCD 的算法,只是改成了辗转相减,对拍发现没有问题。这时候开始有了一点信心,感觉第一题能 AC。但是结束之后跟同学讨论发现如果遇到极限数据,辗转相减很可能会超时,最好还是要辗转相除。不过数据出得比较良心,还是 AC 了。

对于第二题还是完全没有任何思路,于是又看第三题。然后发现线段树完全可以搞,于是很开心地写了线段树。因为熟悉所以一次就写对了,然后对拍发现没有问题,常数也还过得去。

做完一三两题也没多少时间了,对于第二题依旧毫无思路,只好写了 10 分的算法。

对于这场比赛,首先是犯了和前一天一样的毛病,就是畏难。不过还是遵循了先写暴力的原则,保证了基本分,然后想满分算法,所以拿了不错的分数。而第二题来不及思考,还是有些遗憾。

10.26 晚上 UOJ Test Round 1

这是我几天以来做得最差的一次。

第一题是送分题。我看到的时候很高兴,想都没想就打完了代码。然后发现是错的。这时候心态就已经有点失衡了。删删改改之后过了两个样例,于是就去打第二题了。但是最终第一题只拿了 70 分。而满分算法其实只要在我最开始的错误代码上稍加修改即可。

第二题就稍有点难度了。我想了很久,遇到了瓶颈之后就再也没有进展了,耗了一个多小时最终还是决定放弃整场比赛。因为这个时候已经状态全无了。

第三题当然也就没有去看。

自己在这场比赛的表现很值得一说。首先,对于第一题,几分钟打完代码却发现样例过不了,这的确是不小的打击,直接影响了心态。然后我想都没想就把错误代码全部删掉重打。这种做法其实是完全没必要的。如果我当时能够再稍微想一下,完全能够在稍加修改的基础上轻松 AC。

对于第二题,我一开始就是奔着 AC 去的。目标太高导致我想不到正解就开始焦虑。这其实是很多人有的通病,就是没有弄清目标。关于这一点,CLJ 曾经在贴吧里总结过,他在某一年的 CTSC 中由于只想着拿第一,导致完全打乱了原来的良好的做题策略与习惯,最终失利。从我自己来讲,我的目标是一等而不是满分,我应该尽量多拿分数而不是想着如果 AC 所有题目,更何况自己根本没有拿满分的实力。如果我当时想的是如何拿最多的分数,那么对于第二题也许我会选择一个只能得 60 分的算法,但那也远比后来的结果好很多,至少会去尝试做第三题。

所以,对于以上三场比赛总结一下就是:

1. 明确目标,摆正心态,尽量多拿分数;

2. 先写暴力,后写正解,尤其是对于自己的算法不确定时更不能轻率;

3. 权衡得失,写性价比更高的题;

4. 要有自信,不要畏难。

时间: 2024-08-05 19:58:49

最近打的三场比赛的总结的相关文章

6、Cocos2dx 3.0游戏开发的基本概念找个小三场比赛

重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27689713 郝萌主友情提示: 人是习惯的产物,当你习惯快乐时.记忆里的不愉快就消失了. 游戏開始之前 经过之前的学习,我们已经能够开发一个最主要的 Cocos2d-x 游戏了,这个游戏包含一张背景图片和一个退出游戏的按 钮,可是这距离完毕一个完整.有用的游戏还非常遥远.在这一章节中,我们将首先抛开 Cocos2d,介绍游戏开发的基本概念.然后结合

OCAC暑期比赛第三场 H题 01字符串 题解

01字符串原题链接:http://codeforces.com/problemset/problem/165/C[题目描述]一个字符串被称为“01字符串”当且仅当它只包含字符“0”和“1”.我们从字符串 s 中取出连续的一段组成的非空字符串就是 s 的子串.比如,"010" 有6个子串:"0", "1", "0", "01", "10", "010".一个字符串的两个

我的第一场比赛——金马五校赛

这场比赛在东华大学举办,基于我上次普及组初赛没有过(本人过于蒟蒻),这算是我的第一场正式线下比赛. 我们学校信息组总共有九个人报名参加,我是其中第八名,但是在整场比赛中大约五五开. 以下是我的比赛心得: 这次比赛是在是发挥失常了.热身赛的时候排名还不错,三十几名,但是到了正式比赛就不行了.这场考试共十二道题目只做出2道. 第一题应该是很水的,但是我少考虑了一个条件,查了将近两个小时后才发现错误. 第二道和最后一道题目都可以用暴力做,但是也不知道为什么就是不让我过. 第六道题目是做的最快的题目,用

2019.10.26 CSP%您赛第三场

\(CSP\)凉心模拟^_^ --题源\(lqx.lhc\)等各位蒟蒻 题目名称 比赛 传递消息 开关灯 源文件名 \(competition.cpp\) \(message.cpp\) \(light.cpp\) 输入文件名 \(competition.in\) \(message.in\) \(light.in\) 输出文件名 \(competition.out\) \(message.out\) \(light.out\) 测试点时限 \(1s\) \(1s\) \(2s\) 内存限制 \

计蒜之道2015程序设计大赛初赛第三场——腾讯手机地图

计蒜之道2015程序设计大赛初赛第三场——腾讯手机地图 (一)题面 腾讯手机地图的定位功能用到了用户手机的多种信号,这其中有的信号的作用范围近,有的信号作用的范围则远一些.有的信号相对于用户在不同的方位强度是不同的,有的则是在任何一个方向上信号强度都一致的. 已知用户面向北方拿着自己的手机,在不同方位的各种信号覆盖区域可以被抽象成以用户为圆心的一系列扇形.已知每个扇形的半径 r,和每个扇形的两条边相对于正东方向的夹角度数.每个信号覆盖区域抽象出的扇形都可以通过从第一条边逆时针旋转到第二条边画出.

2014多校第三场1005 || HDU 4891 The Great Pan(模拟)

题目链接 题意 : 给你n行字符串,问你有多少种理解方式.有两大类的理解 (1){A|B|C|D|...}代表着理解方式可以是A,可以是B或C或者D. (2)$blah blah$,在$$这两个符号中间,如果是不连续的空格的那个位置就有2种理解方式,可以理解为没有空格也可以理解为有空格.如果有连续N个空格的位置,那里就有N+1种理解方式. 最后所有的理解方式相乘,数据保证$一定与$匹配,{一定与匹配},不会有任何嵌套,类似{$$}或者{{}}或者${}$这种情况都不会出现,也不会有{$}这种情况

hdu-4893-Wow! Such Sequence!-线段树【2014多校第三场-J】

题意:一个初始为0的数组,支持三种操作:1.向第k个数添加d,(|d| < 2^31);2.把[l, r]区间内的数字都换成与它最相近的Fibonacci数;3.询问[l, r]区间的和. 思路:初始化Fibonacci数组,longlong 类型内90个就够用了. 线段树区间查询,用lazy标记, sgt[]记录线段树各个节点的区间和, fib_num_sum[]记录与各个叶子节点当前值最接近的Fibonacci数,传递到区间fib_num_sum[]就是区间Fibonacci数的和. 操作1

Wow! Such Sequence! HDU多校联合赛第三场1007

Wow! Such Sequence! Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem Description Recently, Doge got a funny birthday present from his new friend, Protein Tiger from St. Beeze College. No, not cactuses. It's

CountDownLatch 使用(模拟一场比赛)

java.util.concurrency中的CountDownLatch,主要用于等待一个或多个其他线程完成任务.CountDownLatch在初始化时,会被赋一个整数,每次执行countDown()方法,该整数都会减一,直至到0,这一过程不可逆转.其await()方法会在该整数不为0时当前线程阻塞,为0时当前线程进行下去.阻塞时,其他线程得到执行. 下面是一个普通的案例: Player import java.util.Random; import java.util.concurrent.