[Ahoi2005]LANE 航线规划
这题目看上去很BT。。但想想也不难囧。。首先肯定是要倒过来处理的。。
然后建一颗树,那么可以发现非树边肯定不是割边,同时本来树上都是割边。
插入一条边后,这条路径上所有的边就都不是割边了。。
那么变成一个路径维护问题。。。看上去树链剖分一下就没问题了。。
不过从zxytim神牛哪里知道了一个更加NB的做法。。就是这个题目跟一般
的路径询问/修改问题不同在于每条边最多被Mark一次,那么显然可以弄一个
平摊O(m)的做法,再一想发现只要用并查集维护某个点往上第一个未被覆盖
的祖先就可以了。。然后Dfs建棵树,用树状数组维护一下。。再写个Lca就差不多了。。
我WA了好几次是因为数组开小了囧。。。
[Ahoi2005]Code 矿藏编码
这个题目也没什么好说的,写个高精度,再扫描一下就毫无问题了。。。
[Ahoi2005]SHUFFLE 洗牌
这个题目之前讲过了。。不过我觉得这种题目的难点还在于发现规律,之后的解方程
就水到渠成了。。
[Ahoi2005]VIRUS 病毒检测
这个破题目。。一开始我TLE了好几次因为我用了记忆化搜索囧。。
设模板串为A,当前串为B
恩。。是这样样子的,设F[i][j]表示A的前i个跟B的前j个是否匹配。。
那么F[i][j]=
{
A[i]=’*’ : f[i][j-1]|f[i-1][j-1]|F[i-1][j]
A[i]=’?’ : f[i-1][j-1]
else f[i-1][j-1]&&A[i]=B[j]
}
[Ahoi2005]CROSS 穿越磁场
恩。。这个题目离散化一下。。然后再随便套个最短路就可以解决了。。
不过由于边权要么是0要么是1,有O(m)的算法。。
[Ahoi2005]COMMON 约数研究
这个题目只要考虑每个因子出现的次数就可以了。。
ORZ…… 好厉害。。。。 我现在是知道方法但是没有实现代码的能力。。。 没写过线段树等维护树的深度和最近祖先之类,连怎么缩点都不会写。。。 小妹再去磨练一番。。。