看了犇们的博客之后决定写一写集训的总结,帮助自己有更好的提高。
2017.7.19更新 之后组队赛的情况我会写在另一篇博客上,这篇博客至此已经完工了。写的比较乱可能思路也不是很清晰,不想看我的比赛(liu)经(shui)过(zhang)的话可以直接到最后看总结。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2017.7.2 单人排位赛(1)
Total:13 AC:9 Rank:16
01 水题,求出lcm之后除n就好了,1A
看了下2发现有些小细节不知道,于是看了看榜,转去做13
读完题之后觉得果然水,奇数输出no反之输出yes,交了一发WA,想了想发现2的时候应该是no,改了之后AC
之后再回来做02,发现应该是二分答案,只不过二分判断的地方想了好久,代码实现能力还是弱了一些,好在20min后还是1A了。
跟榜做10,Ai这么小直接素数打表就好了,然而没看到输入多个n,WA了一发才AC
然后看了看03,题面有点迷,第一把武器的属性一开始看成了a1减去a8,想了好久不懂什么意思,后来才发现原来是a1到a8,之后就很水了,只有3个人暴力比一下就好了,1A
继续04,数据这么小,dp显然,直接设dp[i][j]k]表示走到位置(i,j)是装备耐久为k的最大价值,转移也比较简单,第一遍蜜汁读错题意WA,然后莫名其妙改了半天发现读错要输出的东西了,修改了一下AC
跟榜开了08,发现应该是个贪心,想了一种贪心策略交了一发结果用减法处理结果TLE,改成除法之后WA了一发,检查了一下发现有的地方会越界,改了以后又贡献了一发WA,这时候脑子里有点乱了于是理了理思路重新写了一遍终于AC了
看了看05,貌似搜索随便搞一搞就好了,1A
榜上还有12,看了一下发现完全没思路,但是看这么多人过了随便乱搞了一下WA了三发之后A了
然后搞了搞07,WA了几发之后放弃去看09,想了个公式测都没测试一直疯狂提交,WA了7发还有22min挂机。
赛后补了09跟11,09是个组合题,正面算不清楚应该容斥算反面,这样就比较好做了,11则是思维题,想清楚之后发现随便取一个数一直乘2在对n取模就好了,因为(x+y)%n==2*(x+y)%n。
这次主要是跟榜做,做题的过程也没有被卡,心态比较好,没做出来的这两题09是组合数,11是思维,应该多练练思维题,这次的贪心题也体现出贪心比较弱的事实,很容易想着想着就乱了,加强一下这方面的训练。
2017.7.5 单人排位赛(2)
Total:10 AC:8 Rank:17
01纯模拟,注意下细节就好,1A,差2minFB,说明手速还是不太够。
看了下榜大部分人第一题都选择了04,看了一眼果然很水,直接预处理所有键即可,1A
之后瞎看了一会儿题觉得没啥能做的看了看榜发现10+人过了09就去看了看,觉得只需要统计一下被交换的字母,交了一发WA,以为是统计出了问题改了改还是WA,突然发现如果原字符串没有相同的字母是不能交换的,加了特判之后A了
在看了看榜决定开07,一开始没什么思路,后来突然发现对于区间[1,i],如果i为奇数则必须要减去前偶数个数才可能满足题意,偶数反之,这个时候开一个min1和min2分别统计偶数个项的最小和跟奇数个项的最小和,一边输入一边维护即可,第一遍min1、min2填反了WA了一发,之后A
看了看10,应该是数位dp,因为只有10个键,所以用二进制位表示数字i需要按哪几个键,然后枚举一下从S到T经过i需要按键的次数求个min即可,一开始没考虑0这个频道WA了一发,随后A
这时候状态慢慢好了一点,跟榜开了08,想了几个例子之后发现只要没有直达的边就永远也到不了,1A
继续搞了搞03,想了一会觉得略难不过这么多人过了想交一发暴力试试水结果MLE,改了之后WA,觉得暴力游有戏啊,一发PE之后A了
然后开02,一开始看成了k/d算了半天的积分积不出来刚想放弃,后来想起来有辛普森公式,算了一下之后发现是看错了题……改了式子之后发现就是个arctan,1A
剩下两题感觉做不出来,还有43min挂机。
赛后补了06,比赛的时候想到了分成两个子串,但当时以为是有数学公式,赛后才知道是dp
这是我看的这题题解:http://blog.csdn.net/zchahaha/article/details/70832277
开始比赛的时候状态有些差,还好后来调整过来了,主要是09卡了几次心态有些崩,07灵光一现想到了正解直接把状态拉回来了,总的来说我觉得还算正常的发挥,而且小细节经常忘记,可以试着自己多造几组数据本地测试一下,减少WA次数。
2017.7.9 单人排位赛(3)
Total:15 AC:9 Rank:15
热身赛的时候网络就很炸,结果正式比赛的时候服务器果然炸了,不过看得比较开,后来有了份pdf然后慢慢做就当是OI赛制了,题目也只能顺序做。最后比赛强行延长1h不过服务器正常了。
A题太水结果第一发WA了,查了半天发现原来是PE,改了一下A
B题就是个模拟但是小坑巨多,贡献了6发WA之后才A
C题直接统计一下对所有字母求个min即可,1A
D题显然就是C(n,i)求和,就是2^n-1,1A
E题注意aaaa的情况要输出0,还有就是输入的字符串是从高位到低位的,求原数是要倒过来求。贡献了5发WA后AC
F显然LIS前后统计一遍对于i位置左右序列长度的min*2-1更新答案即可,一开始以为只有左右相等才能更新答案结果WA了一发,发现了之后AC
G数据这么小直接枚举所有状态即可,在细节上WA了4次终于AC
I题红果果的博弈论,直接暴力求出所有位置的状态即可,一开始质数序列有点问题WA了一发,加了一个之后AC
K题对于答案1显然贪心即可,有了答案1对于答案2直接二分答案即可。二分细节没处理好WA了6次才A
之后差不多比赛就结束了。赛后补了H、J和M,详见我的博客里shuoj的那三题。尤其是M,就是那个线段树的题,我觉得出的很不错。
这次比赛主要是吃了服务器的亏心态有一些些炸,出了很多细节问题,很多题目都是随便改了下就交,然后疯狂WA,罚时非常吃亏,关键还是心态要放好啊。
2017.7.12 单人排位赛(4)
Total:11 AC:6 Rank:21
A题递推就好,不过上升下降都忘记考虑前一个位置WA了两发然后A
B题博弈显然,打了个表找到规律1A
然后开始怼C,细节上疯狂WA,死活找不到错遂换题
D题水水的模拟不过交了一发竟然OLE,没有查这种错的经验,结果把样例复制了两遍之后发现string忘记清空,改了之后A
之后开始怼E,很水的判断,交了5发WA之后丧失信心,突然发现因为第1题挂了一直忘记去看榜,看了看榜发现I过的人很多开始开I
没看清题意一定要后面的数减前面的数WA了一发,改了之后MLE发现被强制在线了,想了一会发现当min值被更新时之前的max值已经没有意义了,可以直接舍去,交了一发A
然后发现应该去继续怼C,仔细想想发现就算圆心到线段的距离小于r也有可能是在圆外,用点积判断了一下这种情况后A
G之前看过题但感觉不会于是去看J,又是博弈,暴力求NP态交了一发WA,之后疯狂WA突然发现子游戏之间要求sg值的异或和而不能只根据NP态判断,突然发现忘了sg函数的定义遂放弃。
发现只剩30min于是转身继续怼E,发现最开始很傻的写错了循环顺序,最后12minA,之后挂机。
赛后补了J跟G,详见我博客里tjuoj的两篇。
果然只要第一题写挂心态必崩,后来状态一直都不太好,很多细节上的错误,又不好好检查一下就疯狂提交,收获了很多的WA,还有就是对于sg函数的定义居然忘记了这个是很不应该的,以后不能再犯这种错误。还有就是对于细节题多试一些简单的样例再交,减少罚时,这次主要吃了罚时的亏。
2017.7.14 单人排位赛(5)
Total:9 AC:5 Rank:16
A题居然不是签到题,不过想了一会儿之后还是比较容易,线性维护一下1的个数和0的个数,后面的比前面的小更新一下答案,反之重新计数就好了,因为小细节WA了两发然后AC
A题做完心态还不错,跟榜看了看F,觉得应该是签到题,交了一发TLE就懵逼了,一开始以为是没注释文件又交了一发TLE,之后把输入浮点数改成整数变成了WA,一顿瞎改以及瞎提交后A,不过贡献了巨多的罚时。
之后去看I,想了一会只要加个超级源点和超级汇点跑最短路就行,不过一开始看这么大的数据范围以为会TLE,不过堆优化的dijkstra也写不来于是直接交了spfa的代码,一次WA后A
之后看了看BD貌似可做,随便挑了个D,先写了一发倍增WA,查了一会儿不知道为什么会错,突然发现完全可以一遍dfs序之后线段树暴力维护所有的传送门就好,复杂度O(nlogn),这题的数据过是没问题的,写完提交AC,正解我估计应该是个树形DP或者O(n)维护吧。
然后B,当成DP想了半天,死活想不出时间上能过的算法,后来发现可以贪心,不过合并的时候不知道应该强记那个单词,后来觉得可以用并查集来维护,最后并查集有几个块就强记几个单词即可,一次WA后A,赛后才发现我从DP到贪心最后完全变成了最小生成树的kruskal……不过好在是最后10min的时候想出来了。
这次比赛心态还行,不过因为少了一个小时的原因所以看上去还行,但是后面的题我已经没啥可做的了,还是一些小细节的问题,一场比赛下来居然没有题目是1A的,再就是感觉自己在这么多比赛之后还是有所提高,但是只是针对基础题和中档题上,对于难题还是毫无头绪,希望能进步。
2017.7.16 单人排位赛(6)
Total:11 AC:4 Rank: 19
A、E显然签到题,16min写完。
之后跟榜看D,发现是求回文串,但是感觉O(n²)过不了啊,想了一会儿没什么好想法之后去看了H跟I,也没什么好思路,不过觉得I应该是贪心,交了三发都是WA,之后把所有题目都读了一遍,感觉只有D、H和I可做,于是开始漫长的看(gua)题(ji)。
比赛最后1h的时候突然发现H只要求每对相邻的数对答案的贡献即可,1A。
I打算写了个优先队列加暴力二分攻占的村庄数试试水,结果居然A了。
之后继续看D没什么思路,最后30min挂机。
赛后补了D题,果然比赛的时候就应该写一发O(n²)试试的。顺带吐槽B题,赛后明知道正解却因为精度问题死活过不去我真是醉了……
这次比赛感觉一直在梦游啊,开场16min写了两题,最后1h前30min写了两题,所以我中间将近4个小时都是在挂机么……唯一还看得过去的点就是罚时比较少,除了I之外其余三题都是1A的(不过感觉这三题也没什么坑点)
2017.7.18 单人排位赛(7)
Total:10 AC:6 Rank: 9
一看英文题面,内心OS:这次估计要炸了。
看了看题目有一个题有三个版本以为难度是递增的,于是看了看C,也就是first edition,发现好像一眼没啥思路,遂直接跳过这三题,直接看G,发现貌似只需要直接对n取个log即可,结果交上去居然WA,心态有些炸,然后看看榜发现有人过了C,于是去看C,发现数字之间独立的话答案直接就是n*0.5,交了一发又WA,估计这次要GG了,仔细检查了下发现读入有问题,就这样还过了样例……改了读入之后A。然后发现我G题输出格式好像写错了,改了之后果然AC了。
虽然这两题各贡献一次WA不过写完的时间也比较早,只用了25min,开局其实还算不错,英文题面也比较良心的没啥看不懂的词汇,看榜发现有人过了三个版本的最后一个版本,过的人有10+,看了看之后发现是个果果的模拟……1A
既然版本1和3都做了于是开始看second edition,感觉上好像可以分别求每张卡的概率最后求和即可,正确性也没想太多,写完交了一发A(虽然我现在还是不太懂为啥这样就是对的)
之后看了看H,感觉是个挺简单的博弈,暴力提根然后dfs即可,结果建树过程RE,改成bfs建树之后居然WA了,交了两发WA之后看了看status发现没人过这题,可能是想错了做法,放弃。
然后看了看F,想到了个感觉没什么用的优化,就是记录每个点之后第一个不与这个点相同的点位置,然后写了个对拍改了一些细节并且经过了几发WA跟TLE之后AC。
然后看了看I,一开始把题目看成了只要求两个全等三角形,写了100+行之后跑了跑样例发现居然两个三角形之间只能通过平移和旋转之后要重合,翻转不太会判断啊。于是放弃。
这时候发现J过的人貌似挺多的,去看了一眼没啥思路,于是想干脆暴力删边试试,几发WA跟TLE之后比赛最后4min是A。之后4min想了想三角形的题。
赛后知道了三角那题用叉积可以判断翻转,不过不是很想补这个题(才不是因为细节太多懒得写)。
这次比赛关键是胆子大,尤其是F和J,真的是暴力出奇迹啊,而且ACM赛制不同于OI赛制的是你可以通过你的提交错误来判断你的程序有什么问题,当然胆子得大一点才行啊。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
至此暑假集训单人排位赛全部结束,我感觉收获不小,尤其是一些做题上的小策略,有的时候也需要适当的放弃,再有就是一些很实用的小技巧,还有一些能提高手速的define,不过从我的提交情况上来看还有很长的路要走,罚时还是偏多的,正式比赛时罚时太多很不利于最后的排名,个人能力跟其他人比起来还是有很大的差距,只不过因为基础题和中档题比较多所以掩盖了我个人对难题的解决能力很弱的事实,之后尽管是组队赛,仍然不能放松对自己个人能力的提升。最后排位是在15位,组队情况教练会在近两天公布,希望在接下去的暑假集训中和自己的队友共同进步!
Bless All.