省选之后做的题

来源:互联网 发布:二叉树的遍历算法例题 编辑:程序博客网 时间:2024/06/08 18:12

APIO2014:

回文串:根据manacher算法我们知道一个字符串最多的不同的回文子串只有N个。我们以一个回文串为一个节点建立一颗类似trie树的树,树上节点是另一个节点的父亲当且仅当这个节点代表的串在头尾增加各一个字符能得到另一个串,例如“a#b#a”和“c#a#b#a#c”,我们在做manacher算法的时候维护这个树,并在最后线性做一次树形DP便可以统计“回文串长度*出现次数”的最大值。


序列分割:注意到分割的位置确定之后,分割的顺序对答案并无影响。所以我们很容易想到O(NK)的DP,整理后发现是经典的斜率优化。


连珠线:DP,忘了大部分。


xyz111出的题:

随机游走:高斯消元,注意到第一行确定的话能够推到后面所有行,所以我们把变量缩成第一行,把每行每列每个元素都用第一行的元素表示,最后用最后一行的相互关系列方程,解出第一行的元素。


文本编辑器:可持久化平衡树裸题,用[split/merge]的可持久化treap较好实现。


上海市选2014:

信号增幅仪:将坐标旋转缩放后变成了最小圆覆盖。

概率充电器:设f[i]为只考虑i节点子树,i没有电流的概率。那么我们以每个节点为根做一次DP,然后sigma{1-f[root]}就是答案。我们可以不用每次都重新做DP,旋根即可。

神奇化合物:此图为弦图,但是可不用这个性质。我们发现询问只有1w,所以肯定有很多化学键是一直都没有断裂的,离线处理,将一直在一起的原子用并查集缩在一起,每次询问暴力即可。

三叉神经树:树链剖分,每条链建一棵线段树,每次修改只会影响若干段段连续的链。


湖南省选2014:

画框:最小乘积生成树的模型,只不过把最小生成树改成了最小权匹配。

世界树:建立虚树,做DP,再在原树统计答案。理解得不是很透彻。

米特运输:一个点的权值确定之后,整棵树的所有点的权值都随之确定。若两个点的权值使根节点的权值相同,则两个点可以同时保留,由于权值会爆longlong,使用hash或者ln。

抄卡组:此题是水题,不记得看代码即可。

道路阻塞:现在还不会。

江南乐:暴力sg函数有70分。正解:考虑石子数为N的时候的后继局面,将M分成小于根号N和大于根号N两类,分别处理,具体看代码。
0 0
原创粉丝点击