51nod1414【思维】

来源:互联网 发布:世界手机域名 编辑:程序博客网 时间:2024/06/11 02:08

思路:
直接可以枚举1-n,如果枚举到是n的约数i,那么暴力枚举起点,其余点用i累加就一定是正多边形。复杂度是(n*n的公约数个数(最多80));

const int N=2e4+10;int a[N];int main(){    int n;    int ans=0;    scanf("%d",&n);    for(int i=1;i<=n;i++)    {        scanf("%d",&a[i]);        ans+=a[i];    }    for(int i=2;i<=n/3;i++)    {        if(n%i==0)        {            for(int j=1;j<=i;j++)            {                int res=0;                for(int k=j;k<=n;k+=i)                {                    res+=a[k];                }                ans=max(ans,res);            }        }    }    printf("%d\n",ans);    return 0;}
0 0
原创粉丝点击