p1927

Posted qywyt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了p1927相关的知识,希望对你有一定的参考价值。

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

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

技术分享图片

一句话题意:找到大于等于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的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器