GDOI2017 题解

除了2019年以外最难的一次GDOI。

房屋购置

N,M很小可以直接暴力kmp。
维护一个栈,每次插入字符后检查是否能够弹出即可。

取石子游戏

考虑dfs序,如果删除一个子树,在dfs序上是一段前缀和后缀。
把序列倍长,然后就变成了要求一段区间的mex。
显然可以用线段树解决

微信

小学生几何题

RPG

直接bfs即可。

凡喵识图

小学生语文题

王国守卫

逃亡

魔兽争霸x

abns弱化版。。。。
有一结论:最多只会用两种技能。
可以考虑像jsoi合金一样证明。
(O(n^2))枚举技能
列方程(min(frac{hp-xa_i}{a_j},frac{mp-xb_i}{b_j})c_j+xc_i=y)
y是权值和。
分类讨论(min(frac{hp-xa_i}{a_j},frac{mp-xb_i}{b_j}))的取值。
(frac{hp-x*b_i}{b_j}<frac{mp-x*b_i}{b_j})时会选左边,否则选择右边。
解得分界线(z)(frac{mpa_j-hpb_j}{b_ia_j-b_ja_i})
(x<z)(xgeq z)时可以得到(x)的值。
解得的结果是一次函数。
可以根据斜率知道哪个更优
效率(O(n^2))

幸运串

中学生数据结构题

原文地址:https://www.cnblogs.com/ctmlpfs/p/14665700.html