Day 1
toy
水题不解释
running
这次比赛排序真心有问题,这一题事实上是两天中最难的。
每个玩家
x−y
的路径,设
l=lca(x,y)
,可以分割为
x−l,l−y
先看第一种
如果有一个点
k
,
deep[x]−deep[k]=time[k]
明显可以移项
deep[x]−time[x]=deep[k]
那么两边都是独立的了, 在
x
和
情况2类似处理
当然了,这个东西你也可以打一个线段树合并之类的东西来弄,某些大(sha)牛(bi)居然打了链剖。。。
classroom
这题应该是除两天第一题以外最简单的了。
话说NOIP居然考期望。。
明显可以
DP
嘛
设
f[i][j][0,1]
表示到第
i
节课的最小消耗,用了
跑个
floyd
先
考虑转移
这门课不申请,就一定在原教室,申请,就有一定概率在另一个教室。
转移就可以直接来了,上节课选,不选,这节课选,不选,推一下就好了。
Day 2
problem
杨辉三角预处理,然后弄个前缀和即可,我比较蠢,询问是 O(N) 的,然而完全可以再随便推一推 O(1) 询问
earthworm
这题看你脑洞大不大
有一个性质
先切掉的蚯蚓一定比后切掉的蚯蚓长(显而易见),切完以后,先切掉的蚯蚓和后切掉的蚯蚓对应的两对来比也是先的长。
什么意思呢?
比如说两条蚯蚓长为
x,y,x>y
都切完以后为
x1,x2,y1,y2
x1>y1,x2>y2
因为原本就是
x
长,两个都切到以后都是有一次没有长,那么这很显然。
所以呢,新切出来的两条蚯蚓对应来讲,一定是单调递减的
所以插入位置一定是不断向后的,然后就线性复杂度解决
angrybirds
看数据范围,明显状压(然而我在考场上并没有看出来)
直接状压是
然后呢,可以
N3
预处理某两个点所可以打掉的点的状态
然后呢,贪心的想,每个猪早打完打都得打,那么不如早打,所以枚举的第一个猪按顺序取也是一样的。
然后就是 O(2N×N)