BZOJ4818 [Sdoi2017]序列计数
来源:互联网 发布:星际争霸2mac版本 编辑:程序博客网 时间:2024/06/05 06:27
看数据范围一眼矩乘
f[i][j]表示前i个数,和模p余j
用任意取的方案减去不取质数的方案即得到至少有一个质数的方案
对任取和不取质数分别随便做个转移矩阵快速幂即可
#include<iostream>#include<cstring>#include<ctime>#include<cmath>#include<algorithm>#include<iomanip>#include<cstdlib>#include<cstdio>#include<map>#include<bitset>#include<set>#include<stack>#include<vector>#include<queue>using namespace std;#define MAXN 100#define MAXM 20000010#define ll long long#define eps 1e-8#define MOD 20170408#define INF 1000000000int P;struct mat{ll x[MAXN];mat(){memset(x,0,sizeof(x));}mat operator *(const mat &y){mat z;int i,j;for(i=0;i<P;i++){for(j=0;j<P;j++){z.x[i]+=x[j]*y.x[(i-j+P)%P];if(z.x[i]>1e18){z.x[i]%=MOD;}}z.x[i]%=MOD;}return z;}};int n,m;int p[MAXM],tot;bool np[MAXM];mat Xa,Xn,Ra,Rn;int ca[MAXN],cn[MAXN];int ans;void su(){int i,j;np[1]=1;for(i=2;i<MAXM;i++){if(!np[i]){p[++tot]=i;}for(j=1;(ll)i*p[j]<MAXM;j++){np[i*p[j]]=1;if(!(i%p[j])){break;}}}}int main(){int i,j;su();scanf("%d%d%d",&n,&m,&P);for(i=1;i<=m;i++){Xa.x[i%P]++;if(np[i]){Xn.x[i%P]++;}}Ra.x[0]=Rn.x[0]=1;while(n){if(n&1){Ra=Ra*Xa;Rn=Rn*Xn;}Xa=Xa*Xa;Xn=Xn*Xn;n>>=1;}printf("%d\n",(Ra.x[0]-Rn.x[0]+MOD)%MOD);return 0;}/**/
0 0
- BZOJ4818 [Sdoi2017]序列计数
- BZOJ4818: [Sdoi2017]序列计数
- bzoj4818 [Sdoi2017]序列计数
- 【bzoj4818】[Sdoi2017]序列计数
- bzoj4818 [Sdoi2017]序列计数(矩阵)
- bzoj4818【SDOI2017】序列计数 矩阵快速幂+动态规划
- [BZOJ4818][Sdoi2017][容斥原理][矩阵优化DP]序列计数
- 【动态规划20】bzoj4818[sdoi2017]序列计数(dp+矩阵快速幂)
- [BZOJ4818][SDOI2017]序列计数(DP+容斥原理+矩乘)
- 4818: [Sdoi2017]序列计数
- 【SDOI2017】序列计数
- BZOJ4818:序列计数(倍增+dp)
- [DP 倍增] BZOJ 4818 [Sdoi2017]序列计数
- bzoj 4818: [Sdoi2017]序列计数 动态规划+矩阵乘法
- BZOJ 4818: [Sdoi2017]序列计数 (动态规划+矩阵乘法)
- bzoj 4818: [Sdoi2017]序列计数(DP+矩阵快速幂)
- [矩阵乘法] LOJ#2002. 「SDOI2017」序列计数
- LOj #2002. 「SDOI2017」序列计数 (容斥+dp+矩阵快速幂)
- UITableView删除某一行
- C++在指定目录生成txt文件
- 手动编译LUCI 到 openwrt中 并且解决'/bin/po2lmo': Permission denied问题
- 火狐下获取不到当前文档高度
- 对于一个小白来说,遇到的前端问题(2)
- BZOJ4818 [Sdoi2017]序列计数
- springboot搭建
- Git Master回滚
- 开始写博客
- OkHttp3实现Cookies管理及持久化
- Linux 杀死进程方法大全(kill,killall)
- 网易编程—工作安排
- MYSQL优化案例
- 使用LeakCanary进行项目内存泄漏处理