第13章:拿下一血
66读书 www.66dushu.com,最快更新我真是外星人!
每个队伍将分到一台电脑,比赛时间为上午十点到下午三点,总计五个小时,需要在这段时间内完成十道题。
这十题将全部采用英文进行描述,如果没有点单词储备,连题目都读不懂。
颜安拿到题目后便揽过了第一件活,“我来读题吧。”
如果是常规开局,在拿到题目后最好是三人分开读题,这样可以在最大程度上节省时间。
但对颜安不同,在他眼里这些单词、语法简单地过分,林琛、刘希读一题的功夫他都能全部搞定了,且不会出现翻译错误。
林琛一边记录题目内容,一边整理思路为每道题找到一个可能的解题方向。
刘希也没闲着,调整IDE,打开PC^2,写好头文件及常用模板。顺便还要打开BOARD,随时准备跟风。
三人一刻不停,等颜安读题完成,其他小队还才到第六第七题,刘希时刻关注着坐在对面的那批人,发现他们在读题后只交流过两次,大概率只进行到一半。
虽然只是微弱优势,但就是这样的差距让刘希对接下来的比赛充满信心。
“我先写吧,这道题我已经有思路了。”
颜安接过电脑的控制权,在三个人共用一台电脑的情况下,应当优先把稳过的水题给过掉。
这些题目的难度颇高,每道题大概都有那天考试时倒数第五题的难度,不过对现在的颜安和林琛来讲都不在话下。
林琛则扯出几张草稿纸和刘希分了一下,“我记得这道题你比较擅长,可以先在纸上解题。”
作为技术能力和擅长方向都被两人涵盖在内的刘希,在队内的定位其实非常尴尬,要不是章老师坚持让她留下来,现在坐在这里的可能就是另一位学长了。
让三个各方面都拔尖的学生来参赛,从做题的角度来讲无疑是最好的选择。但竞赛并不只有做题,刘希在队伍里需要担当的是辅助手。
在比赛持续的五个小时内,大多数队伍都会放弃用餐时间,从十二点开始强队会逐渐开始爆发,与他们拉开差距。
刘希的任务是保证颜安和林琛在比赛前期能够尽量的节省体力,以在中后程持续的发力。
当然,如果她能解出题目来时,也能为颜安、林琛节省宝贵的时间。
颜安正在写的题目不是很难。
一个巨大的数n可表示为由0、1组成的字符串s,寻找可能的数对(i,j),其中满足条件有零小于等于i小于等于j小于等于n,i&n=i,i&j=0。求每个n最多有多少数对(i,j)。
在读题时他便已经想到了两种解题方法,其一是数位DP,其二是找规律加二项式定理加快速幂预存。
比几天前基础功更扎实的他已经不需要用“取巧”的方式来写这种题目了,娴熟的敲击键盘代码一行接一行的冒出来。
他那清脆的键盘敲击声在安静的考场中显得格外刺耳,还在读题的其他人惊讶的抬头循着声音张望,又很快低头加快了读题速度。
随着思路的逐渐明确,颜安顺利的完成了代码,将其提交给评测机后不久,他们得到了全场第一个黄色的“FIRST PROBLEM SOLVED”气球。
每一道题都有其相对应的一种颜色,解题完成后通过评委的判定为正确,就可以得到相应颜色的气球。
而如果气球上有“FIRST PROBLEM SOLVED”的字样,则表示这道题他们队伍是全场第一个完成的。
夏雨目瞪口呆的看着颜安,他以为的酱油选手转头就拿下了一血,而他还在想解题思路,队友占着电脑写的磕磕绊绊,看样子一时半会完不成。
他这么厉害吗?他看过所有题,就没有那种一眼就会的题目,甚至题目中还有那么两句翻译不出来。
强烈的危机感涌上心头,长得帅技术好,又是老同学。
夏雨意识到如果任由颜安发动攻势的话,他两个月来的辛苦付出将会眨眼间付之一炬。
换他是陈淑敏,都很难不心动。
心已经开始痛了。
强迫自己将注意力转到面前的稿纸上来,但几分钟过去,夏雨发现自己怎么也进不了状态。
同样着急的不只是他,坐在颜安对面来自春申五角场的冯伟。
被他口中的乡下人领先,让他恨不得多长一双手,光速敲完代码把落后的给追回来。
更令他气的是在与刘希的眼神交锋中,对方眼里的得意。
乡巴佬先让你们又如何。
在心中狠狠咒骂,浑然没有注意自己敲键盘的速度已经慢了下来,同时出现了几处连他都没察觉的错误。
这些错误在他提交评测机后被退了回来,判定结果为Compile Error,也就是编译错误,连跑都跑不起来。
与他焦头烂额的检查错误修改代码相比,颜安就悠闲许多。
他正在与学姐一起解题,顺着学姐的思路很快便将第三题的详细步骤确定下来,就连细节都全部搞定。
剩下的工作非常简单,只要照着稿纸把代码抄上去就完事了。
至于第二题,则由林琛接手,相较于颜安他敲代码的速度就要慢一些了,当他敲到一半时,已经有队伍得到了这道题对应的红色气球。
毕竟大家都在挑这种简单的题目写,几乎每道题都有数十支队伍在同时发起冲锋,谁能更快一步,就看手速有多快。
他们不可能样样都赶在别人之前,能拿下一血已经相当不错了。
三道最简单的题目搞定,从第四道题开始就有了一定的难度,赛场随处可见红黄蓝三色气球,但第四种颜色迟迟未出,可见题目难度不在同一等级。
颜安初读题时也被卡住了。
给出n和m,节点编号1到n,问有多少个n个点m条边的简单无向图,满足加一些边后,能变成一个n个点n条边的简单环。
n的取值范围是三到十万。
m的取值范围是零到n(n-1)/2。
正向思考解题非常复杂,颜安卡了会才想到。
如果倒过来考虑,有一个n点n边的简单环,拿掉n-m条边后,这样便只剩下m条边了,变成了n-m个链的方案数。
令k=n-m,那么这道题就成了n个点的一个简单环,拿边之后剩下k条链的方案数。
这么来写的话,会要简单很多。
在林琛写完第二题后,颜安立即接手过去开始这道题的代码实现。