【HDU2582】f(n)
来源:互联网 发布:网络组织 企业家才能 编辑:程序博客网 时间:2024/06/03 13:24
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2582
题解:
打表找规律
先暴力打表求c,gcd,f。
运行下面这个程序
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define LL long longusing namespace std;LL c[200][200];LL GCD[50],sum[50];void init(){ for(int i=1;i<=30;i++) c[i][0]=c[i][i]=1; for(int i=2;i<=30;i++) for(int j=1;j<=i;j++) c[i][j]=c[i-1][j]+c[i-1][j-1];// for(int i=1;i<=30;i++)// {// for(int j=0;j<=i;j++) cout<<c[i][j]<<" ";// cout<<endl;// }}LL gcd(LL x,LL y){ return (!y)?x:gcd(y,x%y);}void calc(LL x){ LL tmp=c[x][1]; for(int i=1;i<x;i++) tmp=gcd(c[x][i],tmp); GCD[x]=tmp; }int main(){ init(); for(LL i=3;i<=30;i++) { calc(i); sum[i]=sum[i-1]+GCD[i]; } for(int i=3;i<=30;i++) cout<<GCD[i]<<" "; cout<<endl<<endl; for(int i=3;i<=30;i++) cout<<sum[i]<<" "; cout<<endl;}
发现gcd数组是有规律的,对于gcd【i】
- i是质数,gcd【i】= i;
- 对于一个质数p,有
i=pk(k≠1) ,gcd【i】= p; - 其余数字gcd【i】= 1;
首先筛出素数,再枚举素数的幂次赋值,其余赋初值1
求一个前缀和即可
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define LL long longusing namespace std;LL gcd[1000010];int prime[1000010],cnt;unsigned long long f[1000010];void init(){ for(int i=2;i<=1000000;i++) if(!gcd[i]) { gcd[i]=i; prime[++cnt]=i; for(int j=i+i;j<=1000000;j+=i) gcd[j]=1; } LL tmp,k; for(int i=1;i<=cnt;i++) { tmp=prime[i]; while(tmp*prime[i]<=1000000) {tmp*=prime[i];gcd[tmp]=prime[i];} } for(int i=3;i<=1000000;i++) f[i]=f[i-1]+gcd[i];}int main(){ int n; init(); while(~scanf("%d",&n)) printf("%lld\n",f[n]); return 0; }
阅读全文
0 0
- 【HDU2582】f(n)
- hdu2582 f(n) 找规律 素数筛
- HDU2582(素数筛)
- printf("%f\n", 3);
- printf("%f\n",5)
- printf("%f\n",5);/
- f(n)=f(n-1)+2*f(n-2)+3f(n-3)
- f(n) + 找规律
- printf("%f\n", 3);
- hdu 2802 F(N)
- HDU 2802 F(N)
- hdu2802:F(N)
- HDOJ 2802 F(N)
- hdu-2082-F(N)
- HDOJ 2802 F(N)
- date +%F-%T-%N
- HDU 2082 F(N)
- hdoj-2802-F(N)
- Codeforces Round #420 B. Okabe and Banana Trees
- Python 操作 MongoDB
- UNP(卷2:进程间通信)—— 第5章:Posix消息队列
- JAFrameWork网站开发框架
- 机器学习-->概率论和贝叶斯先验
- 【HDU2582】f(n)
- JQuery 里面的 click 事件会累加
- SSH KEY生成步骤
- ssh中“Host key verification failed.“的解决方案
- 关于Elastic入门的一些上手易懂资料
- 快速幂1005
- JPA简介
- TCP的三次握手和四次挥手以及为什么
- CentOS7新增SSH端口