2019年第十二届ACM大学生程序设计竞赛河南省赛总结(带题目)

2019年的ACM河南省赛是在驻马店的黄淮学院体育中心举办的,时间是5月6~7日,前一天为报到、准备住宿、开幕式和热身赛,后一天则是正式赛和闭幕式;热身赛为两题,正式赛为10题,分别是半中半英,可以自行选择题目去做,然后进行提交试题

来说说我们的比赛情况吧

今年我们是6号早上八点半就出发了的,因为说是要提前去报到开幕式啥的,事情好像也不少,所以我们去的也挺早,就这么回事,一路颠簸以后,我们的司机不太知道路,就多绕了两圈,先到酒店登记了住宿;哇,说到酒店,我就难受,人家的酒店都是什么维也纳国际酒店啊,星际国际酒店啊,铂鑫假日酒店啊....我们的却是柏林公寓....里面超级小,超级破,极其不舒服...不过为了比赛,忍一晚上吧也就;登记完以后我们就去吃了点东西,然后准备热身赛;热身赛第一个是直接暴力模拟就能过,我们是想太多了,一直在处理,一直在想数据,所以卡死最后也没过,第二题是我感觉可以暴力也可以用二维前缀和求,所以果断前缀和一发过不过热身赛以后才发现,他们根本没有卡时间,把C/C++的时间调的跟JAVA一样的,这样两秒根本不会超时啊,也是醉了...

正式赛的时候,我们先开了A题,因为可以KMP也可以直接暴力,我怕卡时间,就直接写了KMP,正反匹配加和就好,随着大流一发过;

然后我队友说开F题,虽然没人做,但是他会,然后我们就想F题,跟他一起做了一遍,直接暴力WA了一发,然后他又想了好久,我们想了各种数据,结果想出来一个很牛逼的数据,怎么都过不了,结果因为不会处理,放弃了。后来听讲题,说是网络流可以做,还有一个啥啥啥的也能做,触及到了知识盲点,幸好放弃了;

这时候我队友在做J题,也是因为有很多人做出来了,所以我们应该也能做,然后他上去敲,敲了半个多小时,感觉不太对,然后也是因为不好处理,就不知道怎么办了,其实J题我一看,也有思路,直接把我的思路敲上去,直接一发过了,也是暴力模拟了;

开完J题以后,留给我们的时间已经不多了,留给我们的面包也不多了(其实队友在敲J的时候,我就开吃了哈哈哈.....),因为时间不多了,我们就分工了,一个队友开了C题,说差不多能搞出来,也有思路了,然后他就上去敲了,我俩就去看D,因为D是相对做的比较多的了,所以我们直接想了思路,写了伪代码,当那个敲C的队友放弃了以后,我们直接将D的代码怼上去,样例直接过了,然后我们想了一组数据,想试试我们的思路算出来跟代码算出来是不是一样的,结果...我们手算并没有算出来(哈哈)...然后交了一发,WA了,一看用的 cout 没控制小数,改成 printf 又交一发过了

总结一下,我们是三道题,过了ADJ,排名113....真滴菜,接近铜尾了已经,整场比赛稳定100名附近,真惨,拿了个铜就上车回学校了...脸都丢尽了...本来我们队是冲着保银冲金的目标去的,结果差点连个铜都没拿到,哎呦今年的题也是惨,不卡时间不卡数据,全是考思维和处理,超级烦的...

结束了,2018年我大一,曾作为唯一的观摩队去信阳师范学院比赛,虽然没有算成绩,但是也算是经历了一年,了解了省赛比赛的规则跟流程,然后今年算是正式参加了比赛,结果就拿了个铜,成绩跟我们去的时候的计划不符合,差了很多,但是但是,整个比赛过程中,我们三个人一直在努力,一直在思考,电脑也一直在敲代码,都没闲着,尽管分工有一点点问题,不过我们尽力了,这也许就是我们的全力了,但是,我们三人一致决定,再战一年,大学能有几个一年,不能让自己后悔!明年是在河南农大比赛,希望我自己明年能给力一点,因为是个考研党,所以不知道明年还能不能参加比赛了....尽量吧,加油了!!!希望自己的大学生活在几年、几十年以后回忆起来,是有激情的,满满的都是感动,都是美好的回忆,ACM让我遇到了你们,真好!

然后介绍一下比赛地点吧:

首先我们的比赛场地,大概是这么个样子:

就在体育馆内,跟区域赛差不多的场景,也比去年有氛围了很多,去年是在他们的教室里面,摆的桌子,还有气球都是粘在板子上的,今年厉害了很多,是用的高端一点的泡沫的位置牌,然后上面可以插气球,大概是这么个样子:

2019年第十二届ACM大学生程序设计竞赛河南省赛总结(带题目)_第1张图片

还有我要吐槽一下,今年的鼠标还行,但是键盘是薄膜键盘,我个人感觉超级难用,所以敲的时候很不习惯...

有一个很厉害的事情,就是编译错误不罚时,所以各位可以利用一下这个小技巧...

还有一个就是,提交题的时候,需要提交编写的后缀名为cpp的文件,所以交错了的话,直接完蛋。

下面传的图片,依次是 A B C D E F G H I J 题,可以按顺序去查找:

A :

说说这题的思路吧,这题我们第一眼看的就是模式匹配,直接正向反向匹配,然后把匹配结果加和就是最终结果了,没什么难的,有直接暴力匹配和用KMP匹配两种方法,但是想了一下,用KMP比较保险,正巧也带了KMP的模板,所以就直接用KMP匹配,然后一个数组存正向的串,一个数组存反向的串,直接匹配求和,一发过了

2019年第十二届ACM大学生程序设计竞赛河南省赛总结(带题目)_第2张图片

B:

这题其实是可以用DP做的,求最优解就好,不过我们队暂时DP不强,所以直接放弃

2019年第十二届ACM大学生程序设计竞赛河南省赛总结(带题目)_第3张图片

C:

这个题的话,就直接分段匹配,然后标记判断是否变异即可

2019年第十二届ACM大学生程序设计竞赛河南省赛总结(带题目)_第4张图片

D:

题目解析:

D题的话,估计是最弱智的题目了吧,一看就直接直线方程求斜率,然后对应求值加和就好,不过其实开始的时候是没有队去做这个题的,因为没人敢去开,而且开了几个队,全是WA的,不知道他们为什么错,所以我们也不敢开,其实就是直接算斜率然后加上每一趟车的收入,然后控制输出两位小数就可以解决了;不过其中有一个特别重要的点,因为题上并没有说给出的时间跟收入是按时间排过序的,所以可能是乱序给出,所以必须按时间排序!!!然后再求和就好。

2019年第十二届ACM大学生程序设计竞赛河南省赛总结(带题目)_第5张图片

E:

2019年第十二届ACM大学生程序设计竞赛河南省赛总结(带题目)_第6张图片

F:

这题好像是用二分图或者网络流来求解的,但是我们队直接暴力了一发,WA了以后直接放弃了,而且场上用二分图和网络流去做的队,全部都错了,但是用奇葩思路直接暴力的人却过了,这就说明题目有问题(我个人感觉,勿喷)...

2019年第十二届ACM大学生程序设计竞赛河南省赛总结(带题目)_第7张图片

G:

2019年第十二届ACM大学生程序设计竞赛河南省赛总结(带题目)_第8张图片

H:

2019年第十二届ACM大学生程序设计竞赛河南省赛总结(带题目)_第9张图片

I:

2019年第十二届ACM大学生程序设计竞赛河南省赛总结(带题目)_第10张图片

J:

题意解析:

这题其实也是很简单的,首先,你要把题上给的图竖起来,用1 , 2 , 4 , 8 , 16.....这一列当做基准,作为层号,然后先找出你要求的数字在第几层,然后看距离本层的基准距离有多远,然后对应递归减去上一层的基准值,一直减到 1 结束。

2019年第十二届ACM大学生程序设计竞赛河南省赛总结(带题目)_第11张图片

 

OVER!

你可能感兴趣的:(总结,算法)