题目链接:点击打开链接
题意:一共n个人, 从第k个人开始, 这个人离队并且指定向左或向右第v个人离队, 依次下去, 求得分最高的人是谁。
第p个人离队, 将得到G(p)分, G(p)是可以整除p的所有数。
对于可以被i整除的数的个数, 我们可以通过枚举每一个数的倍数, 预先处理出来。
该题直接模拟就好, 因为每次都一定有一个人出队, 所以要枚举n次 , 对于每次, 要计算具体是哪个人出队, 这个可以用数学推导很快的算出来是当前队列的第几个人, 要找到这个人我们可以用二分+树状数组来优化算法。
复杂度O(n*logn*logn)
细节参见代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include