2016CCPC合肥赛区总结

时间过得真快,不知不觉一个赛区就打完了,距离刚接触ACM也快一年了,这一年的收获真的非常大,万

分感谢我的老师和一起努力的朋友们。

————————————————————————————————————————————————

先发题解:

A.传递/Transitivity:

比赛时n³暴力+vector优化过的,但其实BFS一遍就好,只要出现深度>=2的点就GG

 

C.朋友/Podruga:

对于每一局游戏,判断直接与根相连的边的权值和奇偶性,是奇数先手赢(Girls win!)否则后手赢

→证明:假设不是一棵树而是一条链,那么你每一次操作都一定会修改链尾的权值(0变1,1变0),例如当轮到A操作时,当时的链尾的状态是0,那么他操作完后一定会变为1,这时该B操作了,同理B操作完后链尾的状态一定会变回0……如此往复,每到A就是0,每到B就是1,但最后必输态是0,所以A就GG了,对于树来讲就是多个状态,这个很好明白

 

E:扫雷/Mine:

还是比较明显的DP,无后效性这个很容易判断,先将问题转换一下:只有两行!下面那行全是数字,每个数字表示它上面的三个格子总共有多少个雷,而上面那行为未知状态,每个格子可能没有雷,也可能有1个雷或2个雷,但是这两个雷它不一样(对应着原问题只有一个雷的时候,这个雷可能在上面,也可能在下面),这样很显然第一行第i个位置放多少个雷取决于第i-1个位置的雷数,第i-2个位置的雷数,以及第二行的第i个数字,那么就可以设dp[i][a][b]表示第i行有a个雷,第i-1行有b个雷的情况数,初始化dp[1][1][0],dp[1][2][0]以及dp[1][0][0],状态转移为dp[i+1][t[i]-c-d][c] = dp[i][c][d]*2(t[i]-c-d==1)、dp[i+1][t[i]-c-d][c] = dp[i][c][d](t[i]-c-d==0或2)、dp[i+1][t[i]-c-d][c] = 0(其他)

 

H:异或密码/Psw:

能多暴力就多暴力,预处理所有连续子序列的值,主要是认真看清题目要求

 

I:最大的位或/Maxor:

将l和r转化为二进制,从左往右按位找到第一个l为0而r为1的地方,将l从这个地方开始后面所有的0全部置换为1,r不变,最后直接位或就是答案,例如l:001010,r:100100 转化后为l:011111,r:100100;l:100010,r:101000 转化后为l:100111,r:101000

 

————————————————————————————————————————————————

准备阶段:

第一次参加这种大型比赛,还是比较紧张的,因为自己能力还是不足,但一想到有很强的学长带队(比赛时实力carry),就放心多了,老师跟我们嘱咐了很多东西,比赛前也准备了很久,这场比赛必须全力以赴,还有为下一场攒经验

 

————————————————————————————————————————————————

热身赛:

一看题,前两题都是水题,因为觉得热身赛打得好败人品,所以就没有去做题,而是一直在测系统,其中包括①找找TLE的临界复杂度;(这个测了半天,还在循环里加了一大堆乘除法,发现这测评机好强啊,1e10都跑得过?)②判断下一些数学函数需要什么头文件支持;③测试long long是用%I64d还是%lld输出;④看下系统会不会返回PE,事实是不会的(比赛就WA了两次PE);⑤测试静态内存容量和栈大小,除此之外就一直在看PC^2的公告栏(当得知比赛题目是中文的时候,全场惊讶),最后1题滚粗???

 

————————————————————————————————————————————————

中间准备阶段:

在安徽大学逛了一大圈(都是在找食堂和小卖部),去小卖部买了很多东西,本来想买些咖啡,一看名字“拿铁”!立马把他放了回去,买了些金典牛奶以及比赛时吃的巧克力和薄荷糖就早早回去了,因为第二天7点就要起床了,所以打算晚上早点睡,但是睡不着啊...

 

————————————————————————————————————————————————

正式赛:

我们7点多就到了比赛场地,然后……11点25就进场了,貌似是很多ACMer被参加了铁人三项,所以比赛拖延了一小段时间,在报倒数的时候真的非常虚,但一正式开始就不虚了,就开始慌了...一眼望过去,再望回来,好像没有水题,这就是中文题一个可怕的地方:在你看完所有的题目时,心里就已经有个底了,不像英文题这道不会再翻译另一道。没办法,最后还是看榜,10min后有个队A了I题,于是我们就开始看I题,过了10多min,我有了想法,队友就说直接上去敲,我来验证,然后就开始敲了,越敲越觉得思路是对的,搞定之后测样例,都能过,但最后一个样例是两个很大的数就没测,到是测了很多队友给的数据也都没问题,对着代码检查了一番后就直接交了,然后卧槽,交上去的一瞬间就知道自己犯了一个弱智的错误,但手已经松开了。队友:怎么样了,过了吧?我:等等,这评测机它坏了...我再交一下。这我的锅啊,也不能说不细心,但检查时怎么就注意不到呢??可能是这种错误以前很少出现,看来以后测样例不能偷懒,没准哪个就过不去呢。

正确写法应该是:                  结果写成了这样:

之后第二发就顺利AC了,I题41-2A,看榜60名左右,然后mm学长直接上次敲H,一开始写了个set+二分,但后来就不用set了,结构体+二分,交上去WA,重新看题发现有个条件没注意,同等大小还要输出最长的,修改一波,二分都不用了,直接暴力交上去还是WA?what?15min过去了,中间又WA了一发,最后zy发现题目中要求样例之间空行,蒙逼,原来是PE,改了一下秒A,H题85-4A,这个时候排名掉到了80多,失误比较严重,浪费了不少时间,虽然罚时只有1小时,但是后面所有的题都相当于慢了20min,还是很伤的,这说明读懂题真的非常的重要,而且还要多次读题,有时会忽略一些很重要的东西,不过他们在写H的时候我已经有了E题的思路,虽然没有一个完整的解题结构,但mm学长非常自信,说这个很好搞,一定能过,于是我立马就上去敲了,旁边mm学长一直在指导我,15min敲完,10分钟检查+测数据,确定万无一失,交!好,完美,WA的真快,于是开始了各种检查,读题+继续验证数据+找题目的坑,10min后zy发现题目中的取模居然不是常见的1e9+7,而是1e8+7,赶紧改,交上去就AC了,E题117-2A,感觉敲代码还是挺稳的,就是粗心+当时三个人的状态可能不是特别的好。

比赛刚好过去一半,比赛中的3道水题也已经清完了,进入后半场,当时我们排名70多,但是3题最快的20名!这个时候感觉后面的题开始不好做了,但是不虚,盯准榜单,就做A和C题,当时我们横扫了四周,发现都是2-3个气球,我也看了下题,确实只有A和C感觉能出,C看起来更难但过得不比A少,B题题目是凯旋三兵,这名字...意思是AC了这道题就凯旋了么?不过确实很难,到现在没有人过,好吧不浪费时间,想A,其实这个A题当时我们想了许久也没有想法,我一直在从题目中的“竞赛图”中找突破口,但最后事实证明这毫无意义,这道题跟“竞赛图”一点关系都没,过了半个小时了,mm学长坐不住了,说不想了,直接上去暴力,当时feel了一下,这暴力要是能过我可以把这题吃了,不过事实就是,当你实在没有思路的时候就应该尝试一下感觉不可能过的写法,虽然过得概率可能微乎其微,但总比啥也不干好,但写到一半时,zy队友提出了用vector优化的方法,这一波神助攻直接让我们信心百倍,敲完直接交,1A,当时那个激动,士气大幅提升,A题177-1A,排名上升了40多,之后我们赶紧看C,C看起来特别的难,一棵树,上万次的操作,每次根还不一样,但奇怪的是C题过的真的比A多很多,所以这个时候我跟队友说这题肯定很水,不要想太难,之后又是长达30min的思考,我和zy还直接模拟题目玩了起来,不过没发现什么突破口,但旁边的队升起了第5个气球,mm学长看到后就坐不住了,说旁边的队过了,我们怎么可以停滞不前,对这题意猜了出题人的想法就直接上了,这太厉害了,居然可以这样,而且还是对了,感觉又学到了新东西,于是我就在旁边想验证想法的正确性,不过我也有感觉mm学长绝对没错,于是往正确上想,最后成功证明!ok,题目A了,5题!C题233-1A,6分钟后封榜,当时我们排名是31,非常的靠前,感觉稳了,银铜91开,这个时候想去看能不能过6题,看了一下榜,5题6题是一个坎,还不小,当时只有7个队过了6题,虽然知道可以开始挂机但心里还是想A题的,都没有思路,也无法跟榜,于是只好凭feel找题,剩下的一小时我们在三道题上花了时间,但最后都放弃了。

说下结果:银奖(倒数第6,按题数发奖,但其实就算纯按比例发我们还是银,嘻嘻),没用到模板,也没做到什么算法题,经历了大大小小这么多比赛,可以得出一个结论:只要稳定把用不到算法的简单题清完,就有铜奖了,这个时候剩下的时间应该不少,只要冷静思考,稍微做出1-2道算法题或是难的模拟题,就有冲银的可能!(虽然这么说,但就怕简单题不会做啊!)

 

————————————————————————————————————————————————

 

结尾:

真的很开心,拿了银奖,但好虚啊啊啊啊,下周还有一场沈阳icpc,木有学长带啊

————————————————————————————————————————————————

榜单:http://ccpc.ahu.edu.cn/rank.html

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值