NOIP2016 提高组 题解

Day 1

toy

水题不解释

running

这次比赛排序真心有问题,这一题事实上是两天中最难的。
每个玩家 xy 的路径,设 l=lca(x,y) ,可以分割为 xl,ly
先看第一种
如果有一个点 k xl路径能给这个点贡献,那么必然满足
deep[x]deep[k]=time[k]

明显可以移项
deep[x]time[x]=deep[k]

那么两边都是独立的了, 在 x l处分别打上加和减的标记,维护一个桶,然后跑 dfs ,那么在进入这棵子树前与加完这棵子树标记后的差值,也就是这个点的答案了。
情况2类似处理

当然了,这个东西你也可以打一个线段树合并之类的东西来弄,某些大(sha)牛(bi)居然打了链剖。。。

classroom

这题应该是除两天第一题以外最简单的了。

话说NOIP居然考期望。。

明显可以 DP
f[i][j][0,1] 表示到第 i 节课的最小消耗,用了j次机会, 0 表示申请,1表示不申请

跑个 floyd
考虑转移
这门课不申请,就一定在原教室,申请,就有一定概率在另一个教室。
转移就可以直接来了,上节课选,不选,这节课选,不选,推一下就好了。

Day 2

problem

杨辉三角预处理,然后弄个前缀和即可,我比较蠢,询问是 O(N) 的,然而完全可以再随便推一推 O(1) 询问

earthworm

这题看你脑洞大不大

有一个性质
先切掉的蚯蚓一定比后切掉的蚯蚓长(显而易见),切完以后,先切掉的蚯蚓和后切掉的蚯蚓对应的两对来比也是先的长

什么意思呢?
比如说两条蚯蚓长为 x,y,x>y
都切完以后为 x1,x2,y1,y2
x1>y1,x2>y2
因为原本就是 x 长,两个都切到以后都是有一次没有长,那么这很显然。

所以呢,新切出来的两条蚯蚓对应来讲,一定是单调递减的

所以插入位置一定是不断向后的,然后就线性复杂度解决

angrybirds

看数据范围,明显状压(然而我在考场上并没有看出来)
直接状压是O(2N×N3)的
然后呢,可以 N3 预处理某两个点所可以打掉的点的状态

然后呢,贪心的想,每个猪早打完打都得打,那么不如早打,所以枚举的第一个猪按顺序取也是一样的。

然后就是 O(2N×N)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值