HNOI2017省选酱油记——Zn_H
先稍微总结一下吧。
这次省选感觉有点搞头,DAY1暴力也有120……但是我DAY1没打第三题暴力(70分),感觉大亏。
第二题会做但是也没打暴力对拍……很显然我太天真太naïve了……于是就拿了50分。
第一题也蜜汁挂掉了,现在我都不清楚为什么。
DAY2我深刻认识到了暴力的重要性,但是开考的时候发现,这暴力好像不太好打……于是打了第三题30分暴力,第一题爆搜+剪枝,第二题骗分。
然后发现第三题能打70分,然后用30分程序拍了下感觉OK了。
意外之喜是T1拿到了40分,T3被卡常拿了55,T2骗到10分(身边的某同学骗到50),DAY2有105分。
然后总分155,拿到这个分还是比较不尽人意,本来应该的得分应该是:
DAY1 20+100+70=190
DAY2 40+10+70=120
这样是有310的(我好像刚好拿了一半……)
自己还是比赛啊考试什么的打的比较少,暴力的优先级永远是比正解高的,这种常识性的问题我没意识到是很严重的一件事,以及联赛分数真的也很重要,各个角度来说。
几个高二的学长也离开了机房,OJ群里也在刷AFO,竞赛真的是一件很残酷的事,风险与利益并存就是这样吧。
未来永远都只能够自己争取,没有人会也没有人能给你怜悯与帮助。
选择了竞赛就只能如此。
“前进!前进!不择手段地前进!”
【DAY1】
【T1】
暴力,拿20。
【T2】
这道题与去年的序列那道题大同小异,用线段树维护标记。
一个数对于答案的贡献仅与它为最大值的区间有关。
先讨论p1,p1的第一种情况是两数相邻,这种情况直接ans+=(r-l)*p1就可以了,
p1的第二种情况对应每一个数,比如 4 3 2 6,以4为最大值的是1~3,但是由于左边没有比它大的所以4贡献为0,而2,3的贡献都为p1,6右边没有比它大的所以贡献为0。
再讨论p2,对于形似&***^***&的区间(这个区间以^为最大值,*号是比小的,&是比^大的)它的贡献是左端点在&右端点在*,或者右端点在&左端点在*两种情况,设^的下标为x,左右&分别为l,r,那么贡献为
①(x-l-1)*p2+②(r-x-1)*p2,我们分开讨论
①(x-l-1)*p2=x*p2-l*p2-p2那么就是一个常数项标记与n*p2的标记,首先对于一个询问其有贡献的前提是x在询问区间内,对于①我们用扫描线枚举右端点,根据左端点在l~x与1~l两种情况打两个标记。
假如当询问端点在l~x之间时,我们不知道它的l*p2究竟是多少,所以这种情况我们把这段区间的二号标记加上p2,常数项加上x*p2-p2。
如果在1~x区间那么以x为最大值的区间的贡献是一个常数项,给一号标记加上。
②同理,但是是枚举左端点。
然后扫描的时候单点查询,统计答案。
(我讲的不太好,没做去年那个题的最好去做一下)
【T3】
求i=1~n的(xi-yi-k)^2的和
把式子展开发现k是固定不变的,只需要n^2枚举循环和统计即可(70分)
你会FFT的话这题就A了
【DAY2】
【T1】
爆搜剪枝40分。
【T2】
不会暴力,输出(0,0)到终点的直线距离10分
排序每次选x最近的连边,不管走不走得过去50分
【T3】
一开始我还在想给我p是想干什么,然后打完DP发现是DP值是组合数
P指的是膜10^p,拆开(2*5)^p=(2^p)*(5^p),从C(0/n)递推,一路需要除以i,乘以(n-i+1),把他们两个都一直除以5和2,除完就和10^p互质了,然后求逆元,分解i的时候
(pri[0]=2)cnt[0]--,(pri[1]==5)cnt[1]--。分解(n-i+1)就++(相当于抵消了),然后这么得到的几个值的乘积记为s,要求C(i/n)就再乘上两个质因数的快速幂即可。
复杂度((nlogn)*10)能拿55分,预处理一下估计可以搞到70?