除了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))
幸运串
中学生数据结构题