ACM 五一杭电赛码"BestCoder"杯中国大学生程序设计冠军赛小记
对于这项曾经热爱的竞赛,不得不说这是我最后一年参加ACM比赛了,所以要珍惜每一次比赛的机会。
五一去杭电参加了赛码"BestCoder"杯中国大学生程序设计冠军赛,去的队伍包括了今年19支World final的队伍,几乎是全国最强的46所学校各出了一个代表队,十分感谢学校给了我这个大三的老年血手这次去比赛的机会。
比赛在5.2一天内完成,上午的热身赛居然是上一场Bestcoder的原题= =。虽然我们三个人都没做过。。。不过我还是水水的写了前两道题。
在中午的悲惨淋雨后,下午正赛开始了。
A题是一道板刷题,不过相对来说其实想法还是很有意思的,不过并不是很难想。
题目大意是:两个数列
是否存在3组L,R的区间互不重叠,若R<L可互换这组L和R。
这道题我们大概想了15min,最后是在队友画了一张图之后瞬间明朗的,其实我们只要找到区间右端最靠左的区间和区间左端最靠右的区间然后对于每个区间check是否在这两个区间之中就可以了,于是我大概在30min开始写,并在40min1Y。
J题也是一道板刷题,而且可能比A题更简单想,所以队友又给我讲了J题,然后我继续写不过我的程序出了个低级的小bug,= =。某些测试数据没完全读完就输出了,这让我们WA了一次,还找了大概10多分钟错误,真是打脸。不过最后还是在1h21min时候2Y了。
这个时候榜上有人做的只剩下E题了,不过我们看了一遍之后思路却比较少,E是一个类似于约瑟夫问题的问题,区别在于每次可以走任意步(一个可走步数的集合),问有可能能赢的是哪些人。当时想了很多的方法,包括动态规划,但是每次淘汰一人使得我们想的动态规划都很难搞。这题大概想了将近1个小时,还是没想到标准算法。
之后我我又想了I题,如何在一个可能有重边,双向边,单向边的图里找到一个环(其中单向边或者双向边走过一次后都会被销毁),因为边数(n)点数(m)都是1000000所以还是很容易让人想到这就是个暴力dfs,不过关键在于图如何建。一开始我想的是对于一个之后单向边的图来说,我们能够在O(m)时间内很容易的找到一个环,不过添加了双向边就会产生一些问题,所以我想通过拆点把双向边建成单向边,不过想了好久还是没建对(也许是对于E题耿耿于怀),之后又转回想E。整个过程大概经历了1个半小时左右,期间整个队伍都昏昏欲睡的。
不过在3小时的时候队友突然提出了一个很好的动态规划的方法,令F[i,j]代表剩下i个人时,若BrotherK的位置是1,那么位置为j的人是否可能获胜转移的时候可以枚举当前轮指定的数是什么,那么就可以计算出当前位置j的人在剩下i − 1个人时的位置(假设BrotherK所处的位置是1),然后利用之前计算出的F值判定此人是否可能获胜,时间复杂度为O(n^3)。我终于明白我们为什么前面想不出来了,原因就是我们没有假设固定每次dp位置都是从1开始,这是一个非常好的想法,一下子豁然开朗啊~
在3h23min的时候队友E题1A了。
而且在他拍代码的时候,我感觉我也豁然开朗,发现I题其实只要把双向边并查集缩点,之后不就是一个单向图找环的dfs了吗?
而对于在一个并查集内形成环的情况只有两种,一种是全是双向边形成的环,这个情况下只需要通过并查集时候判断,这两个点是否已经在一个集合里了就可以判断。另外一种是存在一条单向边把并查集里的点连接起来,这也只需要通过一遍遍历所有的单向边来判断就可以了。所以这道题也就轻松愉快的解决了。
不过最后我们还是WA了6次,原因是扩大了栈空间后,居然并查集还是爆栈,我们最后做了个死,强行用评测机来调试到底是哪一段程序爆栈了,发现居然是并查集已经是哭笑不得了,最后居然还写了个非递归并查集。。。然后在4h27min I题7A了。
最后我们只以四题收场,拿了第32名,离我们定的金牌目标还是有一段距离的,个人来看想在区域赛这套题6题保金5题有希望(毕竟好多final队都是5题)。
最后看看题解觉得其实B,C,D都有可能能做得出来,不过就是我们对题的想法还是少了点,而且很难保持五个小时的专注度,这些也是我们之后需要训练的。
最后附上一张比赛照片,顺便玩了下MS的人脸识别检测年龄,ljl学姐的性别居然暴露了,哈哈~

5.3 在西湖边逛了一大圈,"那杭州美景盖世无双 西湖岸奇花异草四季清香” 哈哈哈~晚上吃的新白鹿餐厅的杭帮菜也是相当不错。
ACM 五一杭电赛码"BestCoder"杯中国大学生程序设计冠军赛小记的更多相关文章
- 个人训练记录-赛码"bestcoder"杯中国大学生程序设计冠军赛
A.Movie 题意是给n个线段,要求求出是否存在三个不相交的线段,是的话输出yes,否则输出no.根据贪心的想法,可以先找出右端点r'最小的线段,他是三条线段中最左的那条,再找出左端点l'最大的线段 ...
- HDU 5215 BestCoder"杯中国大学生程序设计冠军赛” 边双连通分量取出子图+二分染色判图内奇偶环
Cycle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Sub ...
- 高手看了,感觉惨不忍睹——关于“【ACM】杭电ACM题一直WA求高手看看代码”
按 被中科大软件学院二年级研究生 HCOONa 骂为“误人子弟”之后(见:<中科大的那位,敢更不要脸点么?> ),继续“误人子弟”. 问题: 题目:(感谢 王爱学志 网友对题目给出的翻译) ...
- acm入门 杭电1001题 有关溢出的考虑
最近在尝试做acm试题,刚刚是1001题就把我困住了,这是题目: Problem Description In this problem, your task is to calculate SUM( ...
- 杭电ACM2000--ASCII码排序
ASCII码排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- 杭电2000----ASCII码排序
#include<stdio.h> int main() { ]; int i,j,t; while(gets(a)!=NULL) { ; i<; ++i) ; j<-i; + ...
- 【ACM】杭电ACM题一直WA求高手看看代码
数据测试了好几个都没问题,可以就是WA不让过,检测了2个小时还是没发现有什么问题T_T!!求高手看看代码,小弟在此谢谢各位哦! #include <stdio.h> #include &l ...
- ACM组队安排-——杭电校赛(递推)
#include<stdio.h> #include<string.h> #include<math.h> #include<stdlib.h> #in ...
- 杭电ACM分类
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...
随机推荐
- windows组策略屏蔽
点“IP安全策略,在本地机器”——>创建IP安全策略---->下一步---->名称随便写,如输入阻止,然后一直点下一步,出现提示点是,一直到完成,这个时候就创建了一个名为“阻止”的策 ...
- HttpGet/HttpPost请求方法
/// <summary> /// HttpGet请求 /// </summary> /// <param name="url">HttpGet ...
- 五、Google Code Prettify:实现代码高亮的JS库
介绍 code prettify 解释为 “代码修饰”. 他由JS代码和CSS代码构成,用来高亮显示HTML页面中的代码. 支持:C, Java, Python, Bash, HTML, XML, J ...
- 设计模式--解释器模式C++实现
1定义 给定一门语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子 2类图 角色分析 AbstractExpression抽象解释器,具体的解释任务由各个实现类完成, ...
- 【SystemTap】 Linux下安装使用SystemTap源码安装SystemTap
转自 http://blog.csdn.net/zklth/article/details/6248558 文章 http://blog.csdn.net/zklth/archive/2010/09/ ...
- 外层页面与iframe相互调用的方法
iframe调用外层页面的方法: parent.func(); 外层页面调用里面的iframe中的内容方法: $("iframe").contents().find(" ...
- Nginx禁止域名恶意解析
今天打开网站发现访客人数突增啊,不对啊,小站哪来这么多的访问量呢?打开百度统计,看到有其他的域名解析到我的IP,心中很不爽啊.遂搜索之,才有了此篇文章. 打开Nginx配置文件/etc/nginx/s ...
- Pandas:时间数据的季节分析
最近在做论文的数据处理,涉及到不同年份不同季节的分析.另外还要求不同季节的数据可以单独分析. 其实思路还是比较简单的,那就在原始数据中增加一栏:季节 2013-05-21 Aotizhongxin 1 ...
- DIV+ul+LI实现表格效果以及div带滑动条
写这个是为了给自己一个好好的笔记,以免下次需要的时候又到处找,费神费事费时费力.开始吧! 1.先看看效果 2.网页代码 <!DOCTYPE html PUBLIC "-//W3C//D ...
- 八、dbms_rls(实现精细访问控制)
1.概述 本报只适用于Oracle Enterprise Edition,它用于实现精细访问控制,并且精细访问控制是通过在SQL语句中动态增加谓词(WHERE子句)来实现的.通过使用ORACLE的精细 ...