[BZOJ2813]奇妙的Fibonacci(数论)
来源:互联网 发布:2017年php就业前景 编辑:程序博客网 时间:2024/04/30 20:24
题目描述
传送门
题解
打表找规律后,会发现一个喜闻乐见的现象,于是:
第一问,欧拉筛d;
第二问,欧拉筛约数平方和。
时间都是线性时间。
如果把可以用int的都改成int时间会快很多。
至于是怎么筛的列一些式子感受一下就能发现是对的。其中t表示最小质因子的次数,d表示约数个数和,g表示除去最小质因数剩下的数,f表示约数平方和。
代码
#include<iostream>#include<cstring>#include<cstdio>using namespace std;#define LL long longconst int max_n=1e7+5;const int max_t=3e6+5;const int m=1e9+7;LL T,n,a,b,c,N;LL d[max_n],t[max_n],p[max_n],prime[max_n],g[max_n],f[max_n];LL query[max_t];LL ansd,anssum;inline void get(){ d[1]=1; t[1]=1; f[1]=1; for (LL i=2;i<=N;++i){ if (!p[i]){ d[i]=2; t[i]=1; f[i]=(i*i+1)%m; g[i]=1; prime[++prime[0]]=i; } for (LL j=1;j<=prime[0]&&i*prime[j]<=N;++j){ p[i*prime[j]]=1; if (i%prime[j]==0){ t[i*prime[j]]=(t[i]+1)%m; d[i*prime[j]]=(d[i]/(t[i]+1)*(t[i*prime[j]]+1))%m; g[i*prime[j]]=g[i]%m; f[i*prime[j]]=(f[i]*prime[j]*prime[j]%m+f[g[i]])%m; break; } else{ d[i*prime[j]]=d[i]*2%m; t[i*prime[j]]=1; g[i*prime[j]]=i%m; f[i*prime[j]]=(f[i]*prime[j]*prime[j]%m+f[i])%m; } } }}int main(){ scanf("%lld%lld%lld%lld%lld",&T,&n,&a,&b,&c); query[1]=n; N=query[1]; for (LL i=2;i<=T;++i){ query[i]=(query[i-1]*a%c+b)%c+1; N=max(N,query[i]); } get(); ansd=anssum=0; for (LL i=1;i<=T;++i){ ansd=(ansd+d[query[i]])%m; if (query[i]%2) ansd=(ansd+1)%m; anssum=(anssum+f[query[i]])%m; if (query[i]%2) anssum=(anssum+4)%m; } printf("%lld\n",ansd); printf("%lld\n",anssum);}
0 0
- [BZOJ2813]奇妙的Fibonacci(数论)
- 【BZOJ2813】奇妙的Fibonacci
- 【bzoj2813】奇妙的Fibonacci
- [BZOJ2813]奇妙的Fibonacci(线性筛)
- [bzoj2813]奇妙的Fibonacci数列 (数论+线性筛)
- 【bzoj2813】奇妙的Fibonacci 线性筛法
- 【欧拉筛/线性筛】BZOJ2813 奇妙的Fibonacci
- BZOJ 2813 奇妙的Fibonacci
- BZOJ2813--奇妙的斐波那契【线性筛】【斐波那契数列】
- BZOJ 2813 奇妙的Fibonacci 线性筛
- BZOJ 2813: 奇妙的Fibonacci 线性筛
- BZOJ 2813: 奇妙的Fibonacci 线性筛
- bzoj 2813 奇妙的Fibonacci (线性筛求约束平方和)
- hdu 1568 Fibonacci (数论)
- bzoj 2813: 奇妙的Fibonacci 数学+线性筛
- 数论(fabonacci数列) hdu-1568-Fibonacci
- hdu 1021 Fibonacci Again(简单数论)
- UVa 10229 - Modular Fibonacci(数论,规律)
- 重装电脑以后,android studio打不开,提示找不到JVM
- 触发JVM进行Full GC的情况及应对策略
- 2016SDAU课程练习一1000A
- boost.asio系列——io_service
- Chat Server's Outgoing Traffic(求助文)
- [BZOJ2813]奇妙的Fibonacci(数论)
- uva10891 Game of Sum(博弈+区间dp+优化)
- android——彻底关闭——应用程序
- 排序算法
- HTTP 单线程 模拟迅雷下载
- matconvnet编译
- hdu 3788 ZOJ问题
- C++中的单例模式(singleton)
- poj3253--pat---优先队列---堆