BZOJ 3601 一个人的数论 莫比乌斯反演+高斯消元
来源:互联网 发布:低通滤波算法原理 编辑:程序博客网 时间:2024/06/06 00:52
题目大意:求Σ[i|n]i^d
围观题解:http://www.cnblogs.com/jianglangcaijin/p/4033399.html
果然我还是太蒻了- -
此外Σ[1<=i<=n]i^m的零次项注定为0- - 所以常数项不用消了- -
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define M 110#define MOD 1000000007using namespace std;long long d,w;long long f[M][M],a[M];long long h[M],ans;long long Quick_Power(long long x,long long y){long long re=1;(y+=MOD-1)%=(MOD-1);while(y){if(y&1) (re*=x)%=MOD;(x*=x)%=MOD;y>>=1;}return re;}void Gauss_Elimination(){int i,j,k;for(i=1;i<=d+1;i++){long long temp=i;for(j=1;j<=d+1;j++,(temp*=i)%=MOD)f[i][j]=temp;for(j=1,temp=1;j<=d;j++,(temp*=i)%=MOD);(f[i][d+2]=(i?f[i-1][d+2]:0)+temp)%=MOD;}for(i=1;i<=d+1;i++){for(j=i;j<=d+1;j++)if(f[j][i])break;for(k=1;k<=d+2;k++)swap(f[i][k],f[j][k]);for(j=i+1;j<=d+1;j++){long long temp=MOD-f[j][i]*Quick_Power(f[i][i],-1)%MOD;for(k=i;k<=d+2;k++)(f[j][k]+=f[i][k]*temp)%=MOD;}}for(i=d+2;i;i--){for(j=i+1;j<=d+1;j++)(f[i][d+2]-=f[i][j]*a[j])%=MOD;a[i]=(f[i][d+2]*Quick_Power(f[i][i],-1)%MOD+MOD)%MOD;}//for(i=1;i<=d+1;i++)//cout<<a[i]<<endl;}int main(){int i,j;cin>>d>>w;Gauss_Elimination();for(j=1;j<=d+1;j++)h[j]=1;for(i=1;i<=w;i++){int p,a;scanf("%d%d",&p,&a);for(j=1;j<=d+1;j++)( h[j]*=Quick_Power(p,(long long)a*j)%MOD * (1-Quick_Power(p,d-j)%MOD) % MOD )%=MOD;}for(j=1;j<=d+1;j++)(ans+=a[j]*h[j])%=MOD;cout<<(ans%MOD+MOD)%MOD<<endl;return 0;}
0 0
- BZOJ 3601 一个人的数论 莫比乌斯反演+高斯消元
- bzoj 3601: 一个人的数论 高斯消元&莫比乌斯反演
- [莫比乌斯反演 高斯消元 数学技巧] BZOJ 3601 一个人的数论
- 【BZOJ3601】一个人的数论,莫比乌斯反演+高斯消元
- bzoj3601 一个人的数论 莫比乌斯反演+高斯消元
- BZOJ 4176 Lucas的数论 莫比乌斯反演
- bzoj 4176 Lucas的数论 莫比乌斯反演
- [数论][莫比乌斯反演] BZOJ 4816: 数字表格
- bzoj 4174 tty的求助 数论 莫比乌斯反演
- BZOJ 4176: Lucas的数论 莫比乌斯反演 杜教筛
- 【数论】(莫比乌斯反演)关于莫比乌斯反演的小结
- 数论 莫比乌斯反演
- BZOJ_P2820 YY的GCD(数论+莫比乌斯反演)
- [数论][莫比乌斯反演][杜教筛] BZOJ 3512: DZY Loves Math IV
- bzoj 2301 莫比乌斯反演
- bzoj 2301 莫比乌斯反演
- bzoj 2820 莫比乌斯反演
- BZOJ 2818(莫比乌斯反演)
- Android学习(7)-UI布局
- 解决 spring mvc 3.0 结合 hibernate3.2 使用<tx:annotation-driven>声明式事务无法提交的问题
- oracle 11g 安装
- LeetCode169——Majority Element
- 黑马程序员——Jave之反射
- BZOJ 3601 一个人的数论 莫比乌斯反演+高斯消元
- Matlab中的input命令
- linux和windows之间上传 下载文件 非ftp方式
- JSON 学习
- Virutualbox ubuntu 修改BIOS, MDI info 激活windows xp
- 模仿360卫士升级(增加主界面清理进程和流量统计的功能)
- ios7侧滑返回
- GreenDao的使用心得和分享
- php的curl也没这么复杂