2014 ACM/ICPC 北京站 总结

2024-02-04 20:48
文章标签 总结 icpc acm 2014 北京站

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

刚来大学的时候就总听老师提起ACM,也总在知行看到各位大神的赛后总结,现在轮到我写了,第一次写总结,勿喷~

先说说准备的过程,10月底开始整理模板,包括做题时遇到的新的问题,并且参考一些别人的已有的板子(T_T虽然整理好久但最后基本没用。。。),APEC期间去了一次”弱校”熟悉了一下比赛的节奏以及PC^2的使用,顺便膜拜了AK的康神队伍和昂神队伍,然后我们队伍就多了”俯卧撑”这个flag.其他几天除了跟着做每天下午的比赛,也找了点SJTU的题熟悉他们的出题风格。

15号中午来到比赛场地,发现对面是北理带星某队,后面是清华和北航一队,瞬间我们就联想到了比赛时周围各种气球中间飘着一个或两个的惨不忍睹的景象。。。到了开幕式,本来以为开幕式就是领导们讲讲话,宣传宣传主办方赞助商什么的,后来发现其实是各个赞助商代表互相捧(da)场(lian),比如爱奇艺被无情的归为了小公司,IBM代表刚讲完话lenovo的代表就说大家都知道我们受够了IBM的X86服务器等等,后来北大的吴争锴捧了所有人的场。

下午热身赛,一共四道题,第一道是数出这本问题集里面的”ACM”个数,三人每人数了一遍,26个,敲完提交,WA。检查代码,发现测试LL使用了I64d,并且没有返回0,因此通过此题测出LL需要用lld,并且忘记return 0返回的是WA不是RE(后来主办方通知正赛一定会返回RE) 。修改后提交,AC。

第二道题是判断一个数的所有素因子的个数是不是素数,开始想打素数表,发现数据1e9存不下(顺便测了一下数组上限大概为1e8),后来直接判断是否为素数竟然过了。

第三道题是一个求一个有N个数的序列,P项连续和为正,Q项连续和为负,没出。

第四道题是判断一个程序是否为死循环,刚读题是我们还在考虑各种while,for,goto。。。后来看到hint提示,仅有一组测试样例,请勇敢提交。然后我们过于勇敢的直接交了样例,果断WA。后来发现T<=3。所以最多提交8次一定会有正确的解法,接下来就是看RP的时候,我们交了8次,嗯,前7次都是WA。

晚上回学校,本来挂了几道比较水的题继续保持手感,但是在车上收到通知晚上上党课,只好默默的去了逸夫。下课后赶紧回宿舍切题,顺便又找了几个平时不太常用的板子。

第二天比赛前,我们还商量着,比赛时先通读题意,然后如果看到可开的就开,或者看到一水就转一水,至少前一个半小时出一二水,后三个半小时出两个中等题,才有可能拿到牌(后来发现确实如此)。比赛开始,Irsn从A往后读,hiphone从E开始读,我从K 开始读,Irsn和我觉得A和K都可开,然后看到A已经出题,就让lrsn开A题,A题题意大概意思是是给你一些时间和速度,求瞬时速度最大值。我和hiphone确认A题题意,确认后lrsn说了他的做法,我们证明了他的正确性,觉得没问题,提交,1Y。

随后我们一起开K,题意是给你一个数列,通过每回合随机选一个数向后移动,问最小的移动回合数。看完题我的第一个想法是以前做过的一个nlogn排序的题,通过归并排序求逆序对,看了一遍样例发现想复杂了,只要求出每个数后面是否有比他小的数就可以,hiphone提出可以给每个数加一个pos记录当前位置,然后排一遍序即可得出结果。hiphone去敲了K,我和lrsn看H。

H题是给定一个N个数的集合,求异或大于M的子集的数量。暴力枚举肯定不行,dp感觉也搞不了,唯一有一点想法就是能不能按位去求结果,因为每一个数的第i位只能是1或0,那么我们可以通过1和0的个数然后计算出结果,进而与M的第i位比较,或许可以得出结果(后来看了题解发现确实是对每一位列方程然后进行高斯消元)。这时K也过了,由于是lrsn给hiphone讲H的题意,我看了下I题的图感觉应该是计算几何,或许可以开就去看I了。

I题题意是给你两个完全一样的圆环,问他们相交的面积。我一想既然是一样的圆环,那么就可以避免很多情况,然后我就从相离到重合分成了各种各样的状态。在另外两个队友看H题时我去开了I,过了样例,跟两队友商量出了两组样例,发现我们手算不出来,然后直接交了,WA。

我到旁边看打印的代码,hiphone和lrsn开了D,虽然列出了转移方程也过了样例和自己出的例子(或许方程有问题),但还是WA掉了,反正后面的时间里我们基本上是在不断的修改I和D,但是最后还是没有过。我们太弱。

dp一直是我队的弱项,虽然也在不断的切dp的题,但是还是不能流畅的解决出部分dp问题,这也导致我们跪在了D题上。计算几何还是有希望出的,但是还是在赛场上考虑不周全,以后计算几何以及数论也是需要多多练习,多向强哥学习。还有就是我队见的题不够广,很多东西不能及时联想出来,比如H的高斯消元根本没想到。还有很重要的一点就是,模拟完比赛,不管什么题一定要补,就算模拟的时候没看没想,那也要赛后都补出来。我们以前只是把模拟时开的题补完,很多好的题目就会被忽略掉(好吧实际是因为APEC期间做的一场gym,其中的J题和比赛的I题几乎一样,而且情况还比I题多,但是当时觉得太复杂就没补)。

第一次打区域赛,竟然能写出这么长的流水账(以前写800字作文都费劲),不过确实有很多感受,既然有了一年的准备时间,那就应该有更高的目标了。

明年再战!

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



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

相关文章

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思想压缩)。

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter

整数Hash散列总结

方法:    step1  :线性探测  step2 散列   当 h(k)位置已经存储有元素的时候,依次探查(h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中,S为 数组长度。 HDU 1496   a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 。 x在 [-100,100] 解的个数  const int MaxN = 3000