摘要:
测试地址:书架 做法:好久没做平衡树的题了,结果一道水题写了一晚上……唉…… 这一道题需要用到平衡树。 这一题可以按书的编号建点,然后给每个点附上一个优先值,那么按优先值从小到大排序就是当前书架上书的顺序了。题目中的几个操作就可以写成这样: Top和Bott... 阅读全文
摘要:
作为一个辣鸡,最近找不到做题的动力,而且被友校同学出的题目摁在地上摩擦,于是我在Luogu出了一套水题礼尚往来,这里是这套水题的题解。 Luogu上的地址:点我Problem A:对战怪函数(Strange)算法一注意到区间的最大值一定在1~n之间,于是O(... 阅读全文
摘要:
测试地址:跳房子 做法:本题需要用到二分答案+DP单调队列优化。 首先我们发现答案显然具有单调性,于是二分答案,问题转化为判定性问题,即判定跳跃距离在d−g~d+g之间时所能拿到的最大分数是不是≥k。这个我们显然想到用DP处理,令f(i)为走到第i个格子时所... 阅读全文
摘要:
测试地址:GT考试 做法:本题需要用到DP矩阵优化+KMP。 令f(i,j)为到X串第i位为止,没有一次完整出现整个A串,而末尾匹配到A串第j位的X串的数目。那么怎么考虑状态转移呢?注意到,第i+1位可能为0~9任何一个数字,那么当j或这个数字不同时,到第i... 阅读全文
摘要:
测试地址:水平可见直线 做法:本题需要用到栈+凸壳。 通过观察,我们知道从y轴正方向向下看,轮廓肯定是一个下凸壳,所以我们把所有直线按斜率从小到大排序,每次插入一条直线,可以知道新插入的直线肯定会在当前的凸壳中,那么我们执行下列的过程:若当前栈顶的两条直线交... 阅读全文
摘要:
测试地址:明明的烦恼 做法:本题需要用到Prufer序列+组合计数+高精度。 这题就是HNOI2004-树的计数(BZOJ1211)的一个加强版,数据范围增大了,有些点还没有度数限制。但是我们也可以用类似的思路推出答案。我写的BZOJ1211题解看这里。 首... 阅读全文
摘要:
测试地址:树的计数 做法:本题需要用到Prufer序列+组合计数。 什么是Prufer序列呢?是这样的,对于一棵树,每次将其编号最小的节点删去,并在序列中加入这个点所连接的点的编号,这样直到最后只剩下2个点为止,这样生成出来的长为n−2的序列就是这棵树的Pr... 阅读全文
摘要:
测试地址:越狱 做法:本题需要用到快速幂。 考虑到求能使犯人越狱的序列数量太难,于是反过来求不能使犯人越狱的序列数量。我们令f(i,j)为前i个人中,最后一个人信宗教j的情况下,不能使犯人越狱的序列数量,显然有递推式: f(i,j)=∑k≠jf(i−1,k)... 阅读全文