ACM/ICPC 比赛生涯总结+经验分享_如何提高icpc成绩-程序员宅基地

技术标签: ACM-ICPC训练题解  

ACM/ICPC 比赛生涯总结+经验分享

1.获奖经历

时间 比赛 奖励
大一下 ACM陕西省赛 打铁
大一下 CCCC 团队二等奖
大二下 ACM/ICPC全国邀请赛 银奖
大二下 CCCC 团队特等奖
大三上 ACM/ICPC区域赛沈阳站 铜奖
大三上 ACM/ICPC区域赛南宁站 银奖
大三上 ACM/ICPC EC-Final上海 铜奖
大三下 CCCC 团队特等奖
大三下 ACM/ICPC全国邀请赛 金奖
大三下 ACM/ICPC多省宁夏 金奖
大四上 CCPC吉林 银奖
大四上 ACM/ICPC区域赛南京站 银奖
大四上 ACM/ICPC区域赛北京站 金奖
大四上 ACM/ICPC EC-Final西安 银奖

2.写在前头

我也算是打了将近3年的ACM/ICPC这个比赛了.在准备这个比赛的过程中,学习到了很多东西,也感觉到人与人之间的巨大差距.我感觉自己并不是一个有竞赛天赋的人,能坚持到最后拿到区域赛金牌,完全就是时间堆砌出来的.

3.训练经验

ACM/ICPC是一个团队协作的比赛,队友之间配合默契显得尤为重要.比赛中所涉及的知识点非常多,对于一个像我一样的普通人,也不可能做到面面俱到.因此, [ 1 ] [1] [1]这需要队伍里每个人都有自己擅长的一方面,大家知识点的并集要能覆盖到比赛的大部分内容,这样的话比赛中就很少能遇到大家都不会的知识点而造成目目相觑的尴尬处境.当然也不是说每个知识点只需要一个人来学就好了. [ 2 ] [2] [2]要保证会的知识点里面,每个知识点至少要队里2个人都会,在遇到这种题的情况,一个人想出做法来之后,可以与另一方沟通,两方都觉得可行的时候再写,避免想出假算法.

我认为训练分为2部分.

  1. 个人训练.目的是为了学习新算法,巩固自己的知识点.
  2. 团队训练.目的是为了模拟赛场环境,进行团队磨合,熟悉题目套路.

个人训练

对于个人训练来说,就我的训练过程来说,分为以下几个阶段.

入门阶段

这一阶段应该从书本看起,我当时看的书是<挑战程序设计竞赛>,也就是所谓的白书.还有刘汝佳的经典红书.我更偏向于看白书,我觉得白书写的更好一些.

当学习完<白书>以后,如果书中的内容大部分都摸透了,这表明比赛题目的很多常见套路你也都学会了,那么你至少也是区域赛铜牌的水平了.

在这一阶段跟着白书练练poj题库.
以下是我在poj上的过题记录.

在这里插入图片描述

提高阶段

入门以后,各种经典专题你都略知一二了,并且你觉得自己能力比刚入门的时候提升了很多,并且跃跃欲试想要打区域赛了.

此时你已经不需要再看书了,取而代之,你应该多刷一刷各种专题.提升自己的知识,比如,你可以去Vjudge上拉几套kuangbin专题训练系列,比如动态规划,搜索呀之类的东西.
在这里插入图片描述
在这里插入图片描述
当然你也可以到洛谷试练场的提高历练地去刷专题啦.
在这里插入图片描述


在这里插入图片描述

你还要经常参加Codeforces上举办的比赛,这些比赛的题目质量大都不错,可以开阔你的思维,使脑子反应更快,更适应题型的变化.当你的rating到1900分的时候,说明你的水平也有很大的提升.
在这里插入图片描述

牛客网经常举办Wannafly挑战赛,还有一些ACM/ICPC赛制的在线训练赛,题目质量很不错,可以自己边刷边补题.

目前为止,你应该有了拿银的实力.

冲金阶段

在拿了几块银牌之后,你并不满足,你决定再拿一块金牌.于是你决定更加努力的训练,去学习一些更难的算法.并掌握这些算法,以期望在区域赛中做出至少一道金牌题.

比如后缀自动机,后缀数组,动态树,可持久化线段树,Splay,点分治,FFT,狄利克雷卷积,莫比乌斯反演…等等等等

那么此时,你可以刷洛谷的省选斗兽场.这些专题可以使你初步了解这些算法,某些情况下初步了解就够用了.平时比赛时候,你不能再遇见金牌题就避而远之,而是要花时间把它啃下来,因为你的目标是夺金.而你做题的时候要有意识的去做难题,简单题可以一掠而过,以节省时间.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

团队训练

团队训练是必不可少的.团队训练的时候最好模拟赛场的环境,一台电脑用来敲代码,其他的电脑用来看题.尽量不要直接复制板子,而是要像赛场一样,抄上去,这样就不会遇到比赛时候抄错板子的尴尬情形.不要因为是训练赛就放肆交题,丝毫不管罚时,这样会养成一个坏习惯.实际上罚时是很重要的,青岛3题从金到铜的惨状你们忘了吗?

提前分锅.谁谁谁看哪种类型题,提前约定好,每个人优先看自己擅长的方面,相当于做了一个最优匹配,这样使得每个人的输出可以达到最大化.

训练赛后一定要补题,总结,写写题解来加深印象.如果只训练不补题,那跟没训练没有任何区别,下次再出这样的题还是不会.

找个靠谱的队友也非常重要,你和你的队友必须同时重视这个比赛,愿意为这个比赛付出时间,这样你们才能打好这个比赛.

4.比赛经验

赛场其实是有很多小技巧的.

  1. 签到题不要马虎,不要因为简单,写完就直接交,多测几组样例,看看边界条件,确认无误后再交题也不迟.不要因为节省个几分钟弄了很多发罚时,那就得不偿失了.
  2. 读题.一道题至少要2个人分别读,相互之间确认过题意再开始做,比赛时候读错题是很要命的事情,相当于增加了无穷多的罚时.
  3. 快读.有的时候TLE了加上一个快读就过了,真的.
  4. 打表找规律.比赛的时候其实是有很多打表找规律的题目的,有很多题其实要想的话是很麻烦的,而打表的话往往会找出规律,写个公式一下就过了.
  5. 打表.ACM还有一类题是要用打表做的,通常表现为时间复杂度较高,正常情况下需要跑个10s-100s不等.有的甚至要跑个半小时,但实际上所有的答案其实并不多,因此我们可以本机提前打表找出所有答案.
  6. 随机.有很多题其实题目出的不是很好可以被随机卡过去比如2018南京站的一道题.所以,遇到不会做的题的时候,想想这个题随机可不可以过,万一过了就非常之幸运了.
  7. (分块)模拟退火.这是一个非常神奇的算法,遇到求最优解的问题时候,不会做的时候多想想这个算法,往往会起到意想不到的效果.
  8. 猜结论.有很多题你的直观感觉答案可能有某种关联,但是你有证明不出来,此时你无妨大胆猜测它成立,试一试,万一就过了呢?比如2017南宁站的一道题考察Dilworth定理的题,我猜测出一个结论当场就过了.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_37517391/article/details/84098882

智能推荐

Youtube-dl安装及使用教程(Windows系统)-程序员宅基地

文章浏览阅读1w次,点赞7次,收藏24次。制作Youtube-dl下载工具

视频教程-15天入门MySQL和高性能调优视频教程-MySQL-程序员宅基地

文章浏览阅读360次。15天入门MySQL和高性能调优视频教程 负责过多个软件项目的研发、设计和管..._mysql调优视频

java泛型 ppt_第7章-Java集合与泛型-精品课件(PPT)-精品课件(PPT)最新版-程序员宅基地

文章浏览阅读294次。《第7章 -Java集合与泛型-精品课件(PPT)-精品课件(PPT).ppt》由会员分享,可免费在线阅读全文,更多与《第7章 -Java集合与泛型-精品课件(PPT)-精品课件(PPT)》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。1、类中容纳的元素都是Object类型,一旦把一个对象置入集合类中,它的类信息将丢失()集合类的大小可改变提示:数组是有固定长度的,在..._第七章集合和泛型ppt

对计算机相关领域及前沿技术的认识,计算机专业教育及新技术讲座(对计算机专业的认识)论文.pdf...-程序员宅基地

文章浏览阅读1.3k次。《计算机专业教育及新技术讲座》课 程 论 文题目 对计算机专业的认识学 院 : 计算机科学与工程学院专 业 : 计算机科学与技术班 级 : 1103070A学 号 : 1110307..._计算机科学与技术论文讲座内容

舞伴配对问题java_数据结构--队列实现舞伴配对问题+(舞伴程序++c++).doc-程序员宅基地

文章浏览阅读377次。#include#include const bool TURE=1;const bool FAULT=0;using std::cout;using std::cin;using std::endl;class Node{//链式堆栈的节点类public:Node();//构造函数重载1Node(int , int , int ,Node *);//构造函数重载2void const get_d..._java顺序队列跳舞匹配

AB - 模拟/实现并发请求 - PHP (代码) - 压力测试_ab工具模拟并发-程序员宅基地

文章浏览阅读8k次,点赞2次,收藏9次。模拟并发请求, 来测试api性能---压力测试以及需要后端[如: php ]直接请求远程服务器[调用远程服务],但是需求是一次发送多个请求._ab工具模拟并发

随便推点

java BufferedImage rgb2hsv_rgb2hsv java-程序员宅基地

文章浏览阅读203次。https://blog.csdn.net/wuzuyu365/article/details/77994201做了个java版的rgb2hsv/** RGB转HSV* 输入范围R,G,B, 0~255* 输出范围[0]:0~1,[1]:0~1,[2]:0~255*/public static float[] rgb2hsvF(int R, int G, int B){ int tMax, tMin; float H=0,S=0,V=0; flo..._rgb2hsv java

android智能指针sp和wp_android::sp指针, shared_ptr-程序员宅基地

文章浏览阅读493次。普通指针的使用隐患和智能指针的解决办法普通指针在使用过程中的三个隐患:指针没有初始化。指针没有释放。释放后没有置空。智能指针的解决办法:构造函数中初始化。使用计数器,计数器为0时释放。将指针封装在智能指针中,析构时释放。标准库中的智能指针为shared_ptr,而android Binder相关代码使用wp,sp作为智能指针。android中的智能指针计数器由obje..._android::sp指针, shared_ptr

EPOLL 事件之 EPOLLRDHUP-程序员宅基地

文章浏览阅读1.2w次,点赞10次,收藏17次。在对系统问题进行排查时,我发现了一个奇怪的现象:明明是对方断开请求,系统却报告一个查询失败的错误,但从用户角度来看请求的结果正常返回,没有任何问题。对这个现象深入分析后发现,这是一个基于 epoll 的连接池实现上的问题,或者说是特性 :)首先解释一下导致这个现象的原因。在使用 epoll 时,对端正常断开连接(调用 close()),在服务器端会触发一个 epoll 事件_epollrdhup

java计算机毕业设计迅腾游戏交流网站源码+系统+lw+数据库+调试运行-程序员宅基地

文章浏览阅读70次。java计算机毕业设计迅腾游戏交流网站源码+系统+lw+数据库+调试运行注意:该项目只展示部分功能,如需了解,文末获取源码地址。临近学期结束,还是毕业设计,你还在做java程序、网络编程。课程设计,老师的毕设要求觉得大了吗?不知道毕业设计该怎么办?系统功能的数量是否太多?没有合适的类型或系统?等等。这里,你想解决的问题,都能满足你的系统需求。原始Jsp,SSM、SpringBoot,以及HTML+CSS+JS页面设计,web毕设、课程设计源码等等都可以参考得到解决。系统功能:首页个人中心游戏分类管理游

X - 24_he needs a program which, when given a list of wee-程序员宅基地

文章浏览阅读252次。DescriptionThe whole family was excited by the news. Everyone knew grandpa had been an extremely good bridge player for decades, but when it was announced he would be in the Guinness Book of Wor_he needs a program which, when given a list of weekly rankings, finds out wh

向量间的距离和范数到线性空间、赋范空间、內积空间_向量之间的距离-程序员宅基地

文章浏览阅读6.2k次,点赞2次,收藏17次。参考: https://baike.baidu.com/item/%E8%B5%8B%E8%8C%83%E7%A9%BA%E9%97%B4/2285667?fr=aladdin http://blog.csdn.net/mr_hai_cn/article/details/53207307#reply http://blog.csdn.net/soudog/article/details/20..._向量之间的距离