纪念第一次用线段树(模版下)~~~
题意 :
JOSEPH问题,前n个好人,后n个坏人,问选取步长为几,杀好人之前,先杀坏人。
分析 :
1. 写了一个一个个数的代码,到9就跑不动了……
2. 取模减化运算量是第一个优化思路,但用数组的化有删除操作,也就慢下来了
3. 使用线段树
1. 线段数里每一个节点存储着从几到几之间目前的活人数。
2. 每死个人,减掉
3. 查找时,判断该结点左边还有几个活人,如果小于这个数,刚到右边去找。
4. 初始时,1到n就有n个人。
5. 题目的测试数据有重复,所以每得出一个记忆一下
6. 直接打表这个方法就不说了……
代码 :