高新集训D1D2考试总结

来源:互联网 发布:淘宝活动优惠券名称 编辑:程序博客网 时间:2024/04/29 09:10

D1完全爆炸
开考先看了t1,显然是一道dp题,dp方程也很好推,除前九个外每个状态的dp值只和前面九个值有关,自然想到矩阵乘法,用每个矩阵第一列存储当前的状态,然而由于状态和转移数量关系大量出锅(如i状态经过i-1次转移从1转移来),本来想直接在矩阵乘法处模拟快速幂,然而失败了,高精又不会写,还把状态转移个数写多了一个,最后只拿了十分。t2数论bgsg不会,其实这东西就是一个优化枚举-_- t3最后没命了没时间了导致dfsxu线段树还没调完,连样例都不过就交了,居然还得了十分??喵喵喵?
D2考的好一点
开考还是遍历题目,T1一看就是大暴力,加点优化就可过然后就写挂只得了10分,然后就去看t2。t2没准是个线性基,但是我并不会这东西所以就是严格不可做,然后分析t3。t3一开始蹲坑的时候觉得是个O(n3)dp拿前缀和优化成O(n2)
然后惊讶的发现前缀和优化维护某个点往前往后走一定距离的值合并会出锅,然后惊讶地发现点对于期望值没有影响,于是就有了一个严格O(n2)的依次拓展方法。然后我就开始YY怎么优化这东西,显然瓶颈在于枚举的复杂度,于是我就考虑用一个线段树维护右端点在当前位置时,前面每个位置为起点的区间的答案之和,每次新加入一个点就把这个点到上一个点的所有边(这些边都必须走)然后再减去这个边之前最靠前的考虑位置,然后就惊讶的发现这个东西不需要线段树只需要int维护就好了,然后就获得了一个优美的O(nn2)做法,但是由于被long long的输出恶心到了,就靠人品强行不开longlong爆了20分
但是我强行给自己加戏上去讲的时候貌似没人听懂233