http://poj.org/problem?id=2886
一下内容来自http://magicode.blog.sohu.com/120450550.html (以表示对原作者尊重)
这个题主要用到线段树的思想,每次推算出要出去的人在当前剩下的人中的排位,再用线段树求出其原来的编号,即可算出每次应该出去的人,该人得到的糖果数为f(p)(p为出去的顺序,f(p)为p约数的个数
其实当总人数n确定时,p的值和f(p)的值就确定了,p为小于等于n的最大反素数
新学一个反素数的概念
反素数n,1<=i<n,则f(i)<f(n),即在1-n中,n的约数最多
由于反素数个数不多,这个题可以打表,把1-500000之间的反素数先算出来
反素数有以下两个性质
性质一:一个反素数的质因子必然是从2开始连续的质数.