福建省队集训游记

作为FJ省队里最弱的一个,很荣幸能够参加这次省队面基大会省队集训。

谨以此篇纪念我的被虐日常。


20170706 Day0

省队集训开始的前一天,高二生活的最后一天(话说其他同学好像还在准备下周的期末考呀……停课了大半年早已感觉自己没救了)。

CY老师说,现在是什么水平,到NOI就是什么水平了。

确实,一周之内基本很难有特别大的进步了。我现在这么弱,到NOI考场上也还是这么弱。

CY老师说,这次省队集训主要干的一件事是看一下自己每一天的得分。该拿的分是否都拿到,决策是否正确,失误要找出原因,应该怎么调整……

想想自己最近几场,每场都有挂掉不少分数,十分遗憾。大概我也确实需要训练一下考场的心态与决策了。


20170707 Day1

第一天是省队队员互相交(装)流(逼),莫名其妙地排在了第二个上去。讲了一个回文树优化DP的问题,全程念PPT+口胡,还有一些奇怪的口误。

后面听别人分享的感受大概就是:为什么你们分治FFT那么熟练啊,为什么你们打表找规律这么熟练啊,为什么你们推性质这么熟练啊……

(他们都好强啊我什么都听不懂.jpg)


20170708 Day2

首先,操作系统是windowsXP差评,键盘空格键难按差评……

今天是第一场测试,是CJK出的,一共三道题。

点开第一道。是一个在菊花串上面搞事情的题。看一下数据范围,裸暴力只有……7分?想了一下其它部分分,好像一个都不会。

去看一下第二题,一股APIO风。有一些部分分是APIO原题,然而我已经忘记了APIO那题怎么做,只能弃疗。想了想也不会做,干脆就写了一下裸暴力和后面的一个部分分就放着了。(奠定了滚粗的基础)

感觉身体被掏空,赶快回去摸第一题。重新考虑一下,感觉扩展KMP可以搞一些分数。仔细脑补了一下,得到了一个 O(nm+L) 的算法。看了一下,有59分。剩下的两个大点我是真没办法了。然后敲了一下扩展KMP,调了老半天,过了样例,测了一下大数据,5s左右(时限8s),就不管了。(再次奠定滚粗的基础)

点开第三题,一个提交答案和传统混合的一道题。大爆搜只有……8分?还要状压,好难写啊,果断去看提答点啊。第一个点,不会做,第二个点,不会做,第三个点,不会做,第四个点,好像可以做?第五个点,好像也可以做?第六个点,不会做……看出两个点,剩下的点写了一堆没卵用的贪心。(又一次奠定了滚粗的基础)

饭后放榜,期望得分是59+19+20=98,结果38+19+10=67。MD,又炸题了,导致rank 9滚大粗。第一题大概是什么细节没处理好吧,丢了一个21分的子任务(心痛),最后一题提答点蜜汁挂掉,应该是我哪个地方傻逼了……如果分都拿回来的话是rank 5,更高分的同学基本都是第二题拿到76分以上。我连做过的APIO原题的部分分都不会打,确实很菜啊。

考后订正发现第三题挂掉是因为打表的代码跑的顺序是T->S,然而我以为打出来的是S->T……第一题挂掉的原因是数组开小了,我也不知道考场上测大数据的时候为什么一副正常的样子,大概段错误这种东西也不是一旦数组越界就一定会发生的吧……

总结:
1.正解要对拍,高分暴力一定也要对拍!

2.写完拍完之后静查一下数组有没有越界,同时用O2来测极限数据等。


20170709 Day3

今天是n+e的题,第二题是提答,感觉很害怕。

点开第一题,感觉用一个线段树随便维护一下就好了?仔细想了一下发现这个做法维护第二问确实有问题,有点方。冷静了一下发现可以树套树做,然而估计是妥妥的卡常?直接弃了,拿了暴力+所有第一问,预计80分,自以为对拍完之后没有问题……一共花了2h。

看第三题,感觉是乱搞?不会做,写一个最大流暴力弃疗。

开第二题提答题。第一反应是跑费用流,看了一下点数边数都是上千上万级别的,估计考场上是跑不出来了的。写了一个贪心,结果因为输入数据都卡得很死,调参调到结束,一分都没有,于是第二题爆炸。

期望80+0+40=120,结果50+0+40=90。

第一题大数据代码没问题,暴力代码忘记离散化了……同时因为数据比较水,我的大数据错误算法能够通过极限数据第二问?这就更气了,理论丢分30~50分。

第二题一片的60分,怎么回事?原来费用流就直接能跑出60分啊……听说十几分钟就跑出来。我还是太naive了,如果大胆一点去写就没什么问题了。

第三题是个狼抓兔子……2333,我没看出来,好像大部分人都看出来了呀。

rank 25大滚粗。自己的实力就是这么辣鸡。

“原来自己这么不堪一击啊……”

总结
1.多份代码结合起来的代码,一定要注意暴力代码有没有漏了什么东西,比如大数据的代码写了离散化,而暴力忘记离散化了之类的。

2.不要轻易低估网络流的效率!


20170710 Day4

今天的题是isdkfj出的。

点开第一题,看了半个小时,不会。开第二题,又看了半个小时,连最低暴力分都不会。直接弃疗,开提答。

接下来大概就是全程淦提答了。提答淦得差不多了,回去看第一题。感觉可以枚举右端点然后线段树分段维护左端点,然而这样的话就要考虑每一个点被多少颜色覆盖,然后这信息量好像就很大,有点懵逼。这时候又听见旁边的ysy说他不会第一题。好吧,连他都不会,那我就写个暴力弃了。

期望30+0+?=?,因为提答比较玄学。实际是30+0+46=76。第二题全场0分我也是醉了。发现第一题的做法就是枚举右端点,线段树维护所有左端点,因为颜色独立,把颜色覆盖看成加减1即可。(我好菜就差一点.jpg)。于是今天滚得更惨了,rank 30。

大概这几天的排名是单调递减的吧……

河蟹

总结
1.区间计数问题的大套路除了分治,还有从左到右枚举右端点,数据结构维护左端点。

2.感觉有戏的思路就不要轻易放弃。


20170711 Day5

今天是fateice出题,感觉题目的脑洞会很大啊……?

先开第一题,发现是一个DP,暴力转移是平方的。然后我猜测它有单调性!写了一个暴力试了一下发现并没有……然后就先弃了。

点开第二题,多边形嵌套看起来很数学。显然答案随角度变化的函数是连续的,但可能不是凸的,然后感觉直接模拟退火应该就可以了吧。先把计算答案的部分写了。写完突然意识到n是 109 级别的,模拟退火的一次判定就是 O(n) 的了。后悔自己怎么什么都没想清楚就开始写了。有点绝望,不过写了就试着找找规律。随手输了一个大数据进去,发现最优决策点总是0度的时候。才意识到如果n或者m特别大就可以直接看成圆了。于是对大数据直接 O(1) 算一下,小数据模拟退火。拍了几下发现精度还是不错的。

第三题提答,没什么思路,就直接判断直径是否不超过 2log2n 。试了一下发现好像正确率挺高的啊,就是小数据比较容易炸,然而测试点给得的都比较大,可能没那么容易炸?又想了想好像没什么其它做法了,就先放着了。

回去摸第一题,发现j转移到i的贡献只跟两个前缀和s[j]与s[i]的相对大小有关。分类一下然后线段树套堆直接做就好了。码码码,然后调调调,拍WA好几次之后拍上了。

期望100+100+100=300,(那时候感觉今天会一大堆人AK啊)。实际上是100+100+99=299,第三题小测试点炸了一点。第二题原来确实要推一下式子的,然而随机化算法搞过去了也是很有趣……总算是没有写挂题的一天了吧……

不少人第三题跑出了100分。orz zzq AK了……于是我rank 2。

总结
1.一道题不会做就先放着,后面再回来反攻有奇效。

2.看到数据范围特别大不要慌,可能大数据有性质。


20170712 Day6

今天是wyf出题。我不小心迟到了一小会儿……

点开第一题,似乎是一个计算几何。感觉可以转坐标系然后维护点对之间x轴的关系啊?然后多边形就打标记之类的?大概脑补了一个小时,正准备写的时候发现细节多的要死。如果发现做法是错的或者调不出来不就GG了吗……转眼看一下暴力好像都很难写,果断弃了,感觉很亏。

第二题是什么最小表示法之类的。考虑最小表示法的等价条件。然而这东西太一般了,并没有找到什么等价条件。写暴力吧。算了一下复杂度,发现暴力好像还过不去最低的20分,没救了,再弃吧……

第三题看起来很数据结构啊?想了几下并没有想到什么均摊或者单次严格复杂度的算法,毕竟这东西好像信息不太容易合并啊。那考虑分块算法?考虑分块重建,发现块内好做,重建不好做……重建的时候信息又不能合并,因此不能线段树,那就,再分块?但是分块边界的那些点好像就做不来了……那就按分界点来分块?这样就没有边界多出来的点了,好像就能做了。复杂度 O(nnlogn) ,数据最大 n=100000 ,而且这题1s,显然会被卡吧。考虑有没有 O(nn) 的算法。然而排序那一歩不知道怎么省掉。无果只能硬着头皮敲了。

临近结束的时候调出来了,本机自测,随机生成的最大数据也要2s+。感觉没戏,但也只能交了。

期望0+0+30~100=30~100,毕竟我也不知道第三题数据强不强……

实测0+0+20=20。第三题为什么是这个分数呢?有两个点被卡T了(时限1s,然而我TMD是1.008sT???毕竟正解是 O(nlog2n) 的我也没话可说)。剩下的点数据中可能存在加0的情况,这样操作次数是不用加的,需要特判,然而我好像并没有注意到这个情况啊……(说好的有一档子任务是随机生成的呢,怎么 109 以内这么容易随机出0啊???)

第三题好像A了一大片啊……

后面查了一下,发现数组好像还不小心开小了(怪我试大数据的时候没开O2咯)……

只有20分,大爆炸了,rank 25。如果有幸第三题没挂太惨+有空刷一下第三题常数+(带着信念坚定它能过地)敲下第二题暴力的话是rank 4~10。

总结
1.写完之后静查数组大小,这一步不能省。

2.不要把时间压得太紧,请低估自己的代码能力。

3.一定要把数据的每一种形态都想清楚!


20170713 Day7

省队集训最后一天,ExfJoe出题。

第一题。我们知道一个结论,一条x到y的路经总能由任意一条x到y的其它路径通过异或生成树上的返祖边形成的环得到。想到这,这题我就不会做了(掉坑啦?),发现会写两三档子任务。不管了,后面再来写吧。

第二题,感觉是个动态DP。考虑只加叶子?推了老半天式子发现不太会优化转移,转念一想好像直接树剖线段树就可以维护转移了?进一步的,这个做法好像可以直接推广到树合并上。时间复杂度是 O(nlog2n) 还带一个12的大常数的。时限1s,应该是会T的吧。大概用LCT可以去掉一个log吧……不过估计写不动。维护树合并的好像细节比较多啊,那就只写加叶子的吧。自以为写这个以及暴力对拍之类的东西能在一个半小时内搞定,狂写之后发现起码也用了两个小时多啊……

然后就没什么时间看第三题提答,只能随便看一下第一个点,好像输出 n2 就行了?写了一下,以为自己拿了10分。

再跑回去写第一题,时间不足以写多个子任务了(那时候就10~20min了),就写了其中一档,最后测大数据还挂了……最终还是没调出来啊。

期望0+85+10=95,实际0+85+1=86。才意识到刚才自己是个傻逼,第三题第一个点的答案是 n+12 ,怪我没认真推……第二题数据好像比较水,很多50分算法都跑出85分了,这波很亏啊……最终rank 20+

发现第一题就算不会做,可做的子任务加起来就有60+的分数,还比第二题的那个树剖线段树套矩阵好写多了,第三题的前几个点还是比较可玩的……所以为什么我要去淦第二题啊?决策太失败!代码能力太差!

总结
1.不要高估自己的代码能力!

2.如果在一道题上花了太多时间却没能想出来,就先把暴力打一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值