ZJOI2019Day1 游记
原文链接www.cnblogs.com/zhouzhendong/p/ZJOI2019Day1.html
这篇流水账本来是不会存在的。
然而我发现我居然暂时没有退役。
于是就有了这篇流水账。
3-24
11点半出发。
到了讲堂的时候NOIP2018颁奖已经开始了,但是 XJ 的人源源不断的涌进来。
礼堂瞬间坐满了人。
这种 穿着XJ校服的队伍 足足走了好几分钟。
报颁奖名单的人念错了ZJOI2018A队队长NOIP2018rk1 zzy的名字,变成了“张宇哲”,全场爆笑。
经过一些领导讲话之后,bestfy 来了一波吓人的演讲。这这这…… 我被吓到了…… 我觉得还是正常说话好……
晚上回宾馆自闭。
群里有人放烟雾弹说 jls 要讲课。
3-25
早上吃了馄饨。
然而 jls 讲课是不存在的。
还没开始讲课就被小马 D 没了,说好的平等不互D呢,说好的 D CLY 呢?
lyx 讲神仙数学题,前面我还勉强苟着,后面就自闭了。
中午逃出去吃 “名门砂锅” 。
下午kcz杂题选讲。
前期苟在后排充电。
看到ppt封面之后还以为是贺件,和mangoyang相视一笑。
结果不是贺件。
基本没一道会的。
后来跑到前排专心 D cly 了。
有一道题,我和 cly 很快的糊了一个 O(n^3) 的假算法,还以为复杂度 O(n^2) 的。
然后 cly 就被刷在群里,被 kcz 点名了。
好在 cly 谨慎苟在下面不上去逃过一劫。
然后我们发现只要稍微改一改复杂度就对了。
晚上试机。
写了个 FFT 还写挂了QAQ。
最后 3 次 2e6 的 FFT 跑了 0.8 秒,加了取模优化变慢了不知道为什么QAQ。
wzzlh 只要跑 0.4s 。
好像有些人的键盘或者鼠标有问题。
机子反正大家都觉得卡。
试完回去打了几个字符串板子。
3-26
早上胃口不佳只吃了个南瓜粥+一个烧麦。
上午范老师讲数据结构。
前排 emoairx 大爷随手秒掉第一题。
lyx 直接秒上去讲。
AAA树是什么啊?蒟蒻瑟瑟发抖。
……
……
……
听说掉线的蒟蒻可以重连了?
历经千辛万苦终于重连成功了。
马上又断线了。
苟到吃饭。
去尝了尝食堂。
还不错。
DYT: 为什么你有3荤1素,我才2荤1素就没了。
我:这这,这西葫芦里面的一点肉片能叫荤吗?
下午好多人都跑路了。
坐后排充电。
陈齐治讲随机算法杂题。
emoairx 不在场可惜了,他都被钦点上去讲了。
气氛十分快乐。
晚上抱佛脚打板子。
群里有人毒奶考麻将。
9点半就起身睡觉了。
3-27
早上来了个咖啡。
人生第一次吃咖啡。
但是太烫了太苦了,只吃了一点点就给我妈了。
听说换座位了。
wtf?那要试机干什么?又没试到评测机又没试到自己的选手机。
我被换到了叶卓睿的位置。zx2003大爷坐我右边。
在机房门口等待。
莫名其妙说要去报告厅。
很多人去了。但是我们看到源源不断往上涌的人和3楼机房门口挤满的选手又回到机房门口等待。
然而咕了。
过了8点我们才进机房。
而且迟迟没有发试题解压密码。
在此期间直到我听见了机房里沙沙的键盘声我才想起来我要打头文件。
刚打完头文件就发密码了。
看到第一个题,这。。这。。。还真考麻将……
看完3个题(已经8点30了)感觉T1不想看先扔了再说,T2看起来挺可做的先想想再说。
看完立马糊了个假算法然后兴致勃勃的敲起来,刚敲完读入就发现假掉了。
然后去了趟厕所大号。
回来草稿纸上画了几下发现只要维护两个东西就好了:
1. 每一个点是 1 的概率
2. 每一个点是 0 且它有祖先是 1 的概率
第二个东西用于维护pushdown时的一个东西。
第一个东西直接维护,第二个东西线段树就好了。
马上写完,120行,直接过编译,直接过小样例大样例。
写了一下文件输入输出扔掉了。
还有3个半小时。
看了看 T3 。
哦?
50怎么做啊?
想了好久发现好像可以dp。
突然发现70和50分是一样的。
设 W 为初始时根的权值。
枚举一个 lim ,求所有叶子的权值变化量都不超过 lim 的情况下能够影响根节点权值的方案数。
把 根的答案对应的那个叶子到根的路径拎出来,发现只要对于这上面的每一个点搞一搞就好了。
如果它是一个深度为奇数的点,那么显然要让它的子树权值尽可能大,所以他的子树里的叶子节点全部取 val[x]+lim 。
深度为偶数的相反。
设 dp[x][0] 表示 x 子树中选出的所有叶子集合的选择方案中,能够找到方法使得 x 节点的权值变 大/小 的方案数。
设 dp[x][1] 表示 x 子树中选出的所有叶子集合的选择方案中,能够找到方法使得 x 节点的权值不变 大/小 的方案数。
转移式分深度奇偶性讨论一下就好了。
时间复杂度 O(n*|R-L|) 。
看起来好像可以DDP。
推了推矩阵的确可以DDP。
用全局平衡二叉树维护一下就是 O(n log n * 3^3) 的啦。
怕被卡常数。现在只有2个半小时了。
先看看 T1 再说。
好像 20 分好麻烦啊。
不如打 T3。 100 感觉打不出来,70 似乎挺好打的,赶紧打起来。然后发现好难打,写了 190 行,调到自闭。
终于调过小样例和第一个大样例了。把第二个大样例的前50个拎出来跑发现要1.5s,虚的一批。
然而卡常数似乎并不是那么容易。唉。
woc,那不是50分没了么?5000*5000 > 50 * 200000 !
愣了好久才意识到50分是 L=R 的。
那好先扔了再说。
看 T1 。
这个 20 分好难打呀,要不先看看特殊性质点。
发现第二种特殊性质点可以 dp。
发现第一种特殊性质点是第二种的加难版,要各种毒瘤分讨QAQ。
咦?这个50分的部分分是干什么的?
怕不是暴搜?
看起来 n=13 的话前缀长度期望很少啊!
next_permutation 肯定不行,那我就写一个搜索套 dp 的。
结果 n=8 的小数据随便过,n=13 的随机数据飘过。不知道怎么卡,假装卡不掉吧。
突然说延时10分钟。QAQ
还剩35分钟。
理了理特殊性质点的思路,赶紧写。
对于给定的13张牌为1 1 1 1 2 2 2 2 3 3 3 3 4 的,我们发现不能出现新的对子或者面子。所以直接 dp。
设 dp[i][j] 表示前 i 个数中取了 j 个的方案,则 dp[i][j] = dp[i-1][j] + 4 * dp[i-2][j-1] + 16 * dp[i-3][j-2] 。
调出来了,试了几个数据,和暴力对上了。
还剩15分钟,先检查一下文件名之类的再说。
检查几遍之后发现只有10分钟了。
10分钟我也干不了什么了。
于是我们就把文件夹备份了一下然后删掉了除了代码以外的所有文件。
还有 5 分钟。
我更干不了什么了。
那就继续检查头文件。
听旁边zx大爷敲到比赛结束。
于是估分 70 + 100 + 70 = 240,如果 T3 被卡常的话 70 + 100 + 50 = 220,如果出意外fst了的话那就……
出来交流了一波:
cly T2 A掉了,他说总分170
明哥 T2 A掉了,T1 50,T3 10
还有些 T2用矩乘做的orz,听说他们要卡常数。
然后我被D没了。
下午乘学校大巴回XJ。
就这样了。等测评结果出来再说吧,不管fst了还是没fst。
UPD(2019-03-28): 听说标准分220,虚的一批。
UPD(2019-04-01): wtf?还好只fst到200,没有继续fst下去QAQ
UPD(2019-04-01): wtf?看到了cxt在知乎发的东西我才突然发现我也被题意杀了,没看见那个对子两两不同。读错题目自己菜。