码迷,mamicode.com
首页 > 其他好文 > 详细

p1927

时间:2018-08-11 14:37:24      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:枚举   inf   bubuko   就会   als   .com   syn   ++   out   

哇这题坑是真的多,虽然很警惕还是交了三次。

以前没好好看题还以为超级超级难,就一直没做。今天写了一下觉得就还好,思路好想,不被坑难。

技术分享图片

一句话题意:找到大于等于n的约数和的约数和等于自己的第一个数,输出它和它的约数和。

看到s<=18000就可以上一个暴力,枚举每个因数i,i的倍数的那些数的sum[k*i]+=i就好了,复杂度还说的过去。

那么我菜在哪呢?首先

忽略那些自己是自己的“非常好友”的情况

 

这句话没写上去,10分没了。

然后虽然n<=18000但是答案一定比18000大,然而我只处理到了18000,还怪蠢了。偷偷看了一眼数据,发现处理到20000就好了。

而且sum[i*k]也是有可能很大的,再拿着sum[sum[i*k]]去比较就会越界了。

最后还是交了三遍才过。

真是菜啊。

复杂度是O(跑得过)

int i,f;
int n;
int o[20010];
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
//freopen("123.in","r",stdin);
//freopen("123.out","w",stdout);
    cin>>n;
    
    for(i=1;i<=10000;i++)
        for(f=2*i;f<=20000;f+=i)
            o[f]+=i;
    for(i=n;;i++)
    {
        if(o[i]>=20000) continue;
        if(i==o[o[i]]&&i!=o[i])
        {
            cout<<i<< <<o[i];
            return 0;
        }
    }
}

 

p1927

标签:枚举   inf   bubuko   就会   als   .com   syn   ++   out   

原文地址:https://www.cnblogs.com/qywyt/p/9459546.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!