2014 ACM-ICPC 上海站总结

2024-01-28 06:18
文章标签 总结 icpc acm 2014 上海站

本文主要是介绍2014 ACM-ICPC 上海站总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        2014,上海,这大概是我打的最后一场regional。说实话,打得不像上一场西安站那么有感觉,下面来说说我的比赛经历。

        周五,老师开车搭我和殷华去火车站,路上给我们买了水杯和一些吃的,好贴心的感觉可怜。然后我们上了火车前往上海。十点车厢熄灯以后,我很快就睡着了,没想到夜里一点醒来却睡不着了,跑去车厢连接处看了一会书。。到上海之后,乘地铁去上大报道,有位志愿者领着,过程比较顺利,盈神随后也到了。下午热身赛,题目是1人品题+3不会做的题,听说是拼模板的,慢悠悠地交了N发人品题终于过了。晚上也是很早就入睡了,和我参加各种比赛时一样。

        周日早上,准备了几支笔和巧克力来到赛场。南方的比赛确实有点冻手,体育馆里没暖气什么的。。比赛开始,盈神去敲配置,我正序读,殷华逆序读。我读到B,隐约感觉是水题,就往纸上画样例。然后殷华给我说了L的题意,大概是一个有向图,问最少加几条边,可以使得图中有一条路径连接所有的点(怎么听得那么像鄙视链尴尬),我听了之后没想法。然后盈神上去敲,用并查集搞,后来好像发现不是正解就放弃了。然后我和盈神讲了下B的题意,一个网格内,所有格子的中心站着个人,一辆车从左上角沿某路径开,最终回到左上角,所有人始终保持面朝车子,求他们转的圈数的平方和。我给盈神说了个思路,就是统计车子在每个人上方和下方往左右方向开了多少次,大概是个二维线段树或树状数组,盈神也觉得是那样做,我就上手去敲树状数组。二维的线段树/树状数组我只敲过一次,也没带板子,相当不熟练,很快就卡住了,并且感觉会爆内存,就换盈神去敲她的线段树板子。期间我和殷华讨论了一下J,感觉是个很神奇的题目,N支球队和其他队伍各比赛一次,胜负和都能得到相应的积分,取前M名晋级,问最高可能的淘汰队伍积分和最低可能的晋级队伍积分。因为数据量太大,感觉是需要推一个什么公式算出来。

        盈神敲完了B,但是没有过样例,打了份代码让我帮她查,我发现我看不懂她的板子委屈,我只会树套树的那种写法,只能对着查,然后改了一下能过样例了,交第一发。。RE。改了下数组大小,还是RE。很快就发现,数据大的时候会爆内存。这个时候时间过了有一个小时了,过题的队伍寥寥无几,谷歌爷果然是凶。突然榜上出现一些队伍过了I,好像当时盈神在敲,殷华在想J,我就去读I(这是我这场比赛唯一的贡献,读了I的题意。。。其他时间好像都是在坑哭)。大概是给出己方n个兵的攻防,对方m个兵的攻防,每个兵只能用一次,打的时候,只要攻击大于对手防御就能打死。需要在全歼对方的前提下,尽量多的保留自己的兵。然后很快得出了个图论的解法:最小费用最大流/二分图最大带权匹配,不过感觉时间和空间都不允许,甚至图都建不起来。我给盈神说了图论想法,然后建议往贪心上想。盈神觉得可以敲最小费用最大流试试,就上去敲了。

        这个时候,我和殷华交替考虑J和I,然后cha掉了几个I不正确的贪心方法。突然,我想到B用线段树怎么缩内存了(其实应该仔细想想然后用树状数组的,效率高不说,代码复杂度也能大大降低),并不用开1E6*1E6,虽然不熟练,但是可以硬着头皮去试试。盈神完成了I(建图的方法),果断TLE了。然后就是我上去敲B。。

        这个时候已经快要封榜了,想着来上海不会爆零了回去吧。。我正专心敲着B,盈神好像是吃着东西想出了I的贪心方法可怜。之后的时间,就是我们三个人交替上去分别敲三道题,盈神敲I,我用巨挫的方法敲B,殷华用yy的公式敲J,谁敲完了或者卡住了就换下一个人,好像在运行一个优先队列。在离封榜几分钟的时候,盈神通过了I,桌子上终于飘起一个气球。我回去继续敲B,完成之后,开始了漫长的debug。。估计发现的bug不少于15个,什么语句顺序错,ud变量名写反,左右移运算符写错,漏考虑特殊情况等等各种。。。在最后的二十分钟左右才通过了样例。交上去以后返回了TLE。在最后的乱搞时间里,殷华还把代码转成了C语言,送出几发提交,全部TLE。。

        最后结果是这样的,我们很幸运以1题捡了个铜(在此无比膜拜总结中能出现A~L中大多数字母的人),卢学长也出现在了赛场微笑但是大家都没有激动的感觉,甚至我连奖牌都没去碰。题目难归难,区分度还是很好的(铜第一名2题,银最后一名3题)。感觉自己太弱了。

        不想说再见,这八个月里,自己的进步还是能看到的。希望以后能够克服自己不足的地方,比如比赛时候比较心急,代码能力不够强,敲某些算法总想着有个板子,还有盈神跟我说的应该多读别人的代码害羞。最后我想说的是感谢实验室给我带来了那么多,如果去年校赛的时候不过来刷刷算法,现在估计好多东西都不会,这段日子应该是我进步最大的时间,唯一的遗憾,就是没有两位稳定的队友,和我一起奋斗。还是很享受这个过程,享受AC的感觉,我不会停止刷题,就像AcdreamOJ一场比赛的名字一样,NEVER RETIRE。



这篇关于2014 ACM-ICPC 上海站总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/652712

相关文章

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总

Python中实现进度条的多种方法总结

《Python中实现进度条的多种方法总结》在Python编程中,进度条是一个非常有用的功能,它能让用户直观地了解任务的进度,提升用户体验,本文将介绍几种在Python中实现进度条的常用方法,并通过代码... 目录一、简单的打印方式二、使用tqdm库三、使用alive-progress库四、使用progres

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的

C# Task Cancellation使用总结

《C#TaskCancellation使用总结》本文主要介绍了在使用CancellationTokenSource取消任务时的行为,以及如何使用Task的ContinueWith方法来处理任务的延... 目录C# Task Cancellation总结1、调用cancellationTokenSource.

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。