标签:des style http color java os io strong
5 1 4 2 3 9 0
136HintIn the sample, b1=1, c1=4, b2=4, c2=4, b3=4, c3=2, b4=3, c4=9, b5=9, c5=9, so b1 * c1 + b2 * c2 + … + b5 * c5 = 136.
#include<stdio.h>
#include<string.h>
__int64 fact[100005][129],k[100005];
void setprim()
{
    memset(k,0,sizeof(k));
    for(__int64 i=1;i<=100000;i++)
    {
        for(__int64 j=i;j<=100000;j+=i)
        {
            fact[j][++k[j]]=i;
        }
    }
}
 __int64 a[100005],b[100005],c[100005],index[100005];
int main()
{
    setprim();
    __int64 i,j,sum,n;
    while(scanf("%I64d",&n)>0&&n)
    {
        for( i=1;i<=n;i++)
            scanf("%I64d",&a[i]);
        memset(index,0,sizeof(index));
        for(i=1;i<=n;i++)
        {
            if(index[a[i]])b[i]=a[index[a[i]]];
            else b[i]=a[i];
            for(j=1;j<=k[a[i]];j++)
            index[fact[a[i]][j]]=i;
        }
        sum=0;
        memset(index,0,sizeof(index));
        for(i=n;i>=1;i--)
        {
            if(index[a[i]])c[i]=a[index[a[i]]];
            else c[i]=a[i];
            for(j=1;j<=k[a[i]];j++)
            index[fact[a[i]][j]]=i;
        }
        for( i=1;i<=n;i++)
        sum+=b[i]*c[i];
        printf("%I64d\n",sum);
    }
}
HDU4961Boring Sum(在线更新方法),布布扣,bubuko.com
标签:des style http color java os io strong
原文地址:http://blog.csdn.net/u010372095/article/details/38704843