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

bzoj1406: [AHOI2007]密码箱

时间:2018-05-23 13:45:13      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:string   algorithm   clu   tor   iter   one   ace   math   int   

划水摸鱼。。。唔唔唔好困。。。被课内D爆 惨啊

这题就是k^2-1=n*d 求k的解嘛

变形一下 (k+1)(k-1)=n*d

分解一波质因数,我们可以搞成k+1=n1*d1,k-1=n2*d2

枚举一下乱搞就好

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<set>
using namespace std;
typedef long long LL;

set<LL>s;
set<LL> :: iterator it;
int ylen;LL yue[110000];
int main()
{
    LL n;
    scanf("%lld",&n);
    if(n==1){printf("None\n");return 0;}
    
    for(LL i=1;i*i<=n;i++)
        if(n%i==0)yue[++ylen]=n/i;
        
    s.insert(1);
    for(int i=1;i<=ylen;i++)
        for(int j=1;yue[i]*j-1<=n;j++)
        {
            if((yue[i]*j+2)%(n/yue[i])==0&&yue[i]*j+1<=n)s.insert(yue[i]*j+1);
            if((yue[i]*j-2)%(n/yue[i])==0&&yue[i]*j-1>=0)s.insert(yue[i]*j-1);
        }
    
    for(it=s.begin();it!=s.end();it++)printf("%lld\n",*it);
    return 0;
}

 

bzoj1406: [AHOI2007]密码箱

标签:string   algorithm   clu   tor   iter   one   ace   math   int   

原文地址:https://www.cnblogs.com/AKCqhzdy/p/9076330.html

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