Sherlock and Square
Strange numbers
按照定义1~9都是Strange Number,从这些数字开始,枚举下个数字的长度进行BFS,寻找所有合法的解,结果表明这些数只有几百个,对询问二分即可。
Tree Pruning
树形背包,如果选择某个点加入背包,那么以它为根的子树就不需再加入背包,按照约束关系优化到
。
Training the army
最大流,源点向每种技能连边,流量为初始时拥有该种技能的人数,每种技能向汇点连流量为1的边。同时每个巫师新建一个点,A列表中的技能向巫师点连流量为1的边,巫师点向B列表中的点连流量为1的边,构成转移。
Two Array Problem
Splay维护序列操作,最小包围圆将输入random_shuffle()后采用一个均摊
的经典算法。