2017CCSP总结——失败(铜)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017CCSP总结——失败(铜)相关的知识,希望对你有一定的参考价值。

  这次比赛,算是铩羽而归。尽管是第一次出去打比赛,在经验方面略显不足,但是,归根到底,我这次比赛打的很失败。包括我们学校去的,打的也不好,可以说是全体翻车。真的很对不起带我们去的老师。>_<

  经过这次比赛,我发现了自己有如下不足:

  1、算法方面:实力不行,将现实问题转化成算法模型的能力还不够。第三题,如果有人提示我一下这是拓扑排序,那我无论如何也会把那100分拿到手呀。然而,事实就是,没有提示,自己没有往那个方向去想。总之,一来,刷题量不够,导致遇到一些本应该是板子的题目,却需要去“想尽各种办法”。二来,不够灵活,只懂得套用死板子,不会转化。找不到问题的突破口。第三点,思维不够严谨,最后暴力得到的15分,是在晚上8点多了才拿到手的。其实这份拿15分的代码吃午饭前就写好了,之前交上去总是WA,想不明白为什么,直到晚上8点多了,给一个关键的地方的if加了个条件,交上去就15分了。这个问题不是这一次,很多次我写代码都是这样,总在ACM代码规范和工程代码规范之间纠结,或者是经常写一些自认为十分简洁天衣无缝实则漏洞百出的代码。这是之前学Java(EE)留下的部分后遗症,要彻底痊愈,需要大量题目的洗礼。

  2、心态方面:非常不稳定,相当急躁。比赛时,被第一题水题的坐标坑了几发后,心就开始浮躁起来了,直到比赛结束。题目看不仔细,一不仔细就代码漏洞多,本来是简单的题目就写的越来越复杂。这个问题相当严重,一定要好好思考,尽早改正。后来和其他人讨论第二题的时候,我给它找了好多个题目中明确说明了不会出现的样例,中间结果为负数、超int范围等。其实,我如果仔细看清楚了题目,这些问题我在写代码的时候就压根不会去考虑了。这归根结底就是心浮气躁,静不下心看题导致的。另外,因为急躁,导致思考问题不灵活,一根筋。

  3、策略方面:任然是一根筋。思维总限制在算法第二题(模拟)要得满分,第三题至少60分。然而,题型以及题目难度是因人而异的,没有哪次比赛会保证哪道题一定简单,哪道题一定难。在得分策略上,总和最大才是王道。并不一定要死抠哪题得多少分。记住,最终排名是相对的,不是绝对的。

  4、对于后面的系统题,确实挺出乎我的意料的。本以为就像给的样题那样,内存足够,纯空间换时间就行。然而,真的地题目是,要在这两者之间折中。因此要做个伪虚拟内存。用磁盘扩容。这点确实挺大开我眼界的。从没这么玩过。

  5、失误:第四题的二进制文件,他的内容整个比赛过程中我都一直是这么想的:

0b010101010101 0b01010100110

所以,一直都没把数据读进来>__<。而且,对于两个endian输入文件,我一直以为一个是大数据样例,一个小数据样例。然后,它实际上为了让不同语言写起来方面用的。而这个二进制文件,它是以真正的二进制存储,我们无法用文本表达出来,因此用记事本也无法直接打开,而不是这种用文本表达出来的二进制文件。这种其实是文本文件,按字符存储的。

而读取的话,C/C++应该用rb模式读取进来,四个字节组成一个int。Java同样是按字节读取进来。InputStream的read()方法。

第五题,应该以动态分配数组的方式使用内存,而不是一开始就开一个很大的数组。但是,不明白为什么,一开始分配不下,动态分配就能分配下了?没道理呀。

第二题,模拟,用Java写的,只考虑没有lambda的情况,测了很多样例都没错,但是提交上去前三个都一直错,不懂为什么。现在似乎明白一些了。输入的格式不是很标准,导致按"空格+"split字符串出现问题,这不是第一次了。下不为例。在格式不确定的模拟题中,千万不要按“空格+”去split字符串。非常容易出问题。还是老老实实地扫描字符串吧。

-----------------------------------------------------------------未完待续-------------------------------------------------------------------

接下来就是吐槽和抱怨的话了。虽说抱怨是最无能的表现,确实是这样。但是,既然都过去了,吐槽抱怨一下,至少自己感觉要舒服一些。

 

以上是关于2017CCSP总结——失败(铜)的主要内容,如果未能解决你的问题,请参考以下文章

CCSP子图计数

CCSP子图计数

CCSP子图计数

Xamarin Android 片段库

CCSP2021 分赛区

CCSP2021 分赛区