hdu 4059 The Boss on Mars
2012-10-11 23:15
501 查看
题意
求1到之间所有与n互质的数的四次幂之和。
分析
分解n^5-(n-1)^5..可以求出1^4+2^4+...+n^4的公式S(n)=1/30*(n^5+15*n^2*(n+1)^2-10*n*(n+1)*(2*n+1)+15*n*(n+1)-6*n)
先求出S(n),利用容斥原理去掉是n的质因子的倍数的数的四次幂之和。。。
求1到之间所有与n互质的数的四次幂之和。
分析
分解n^5-(n-1)^5..可以求出1^4+2^4+...+n^4的公式S(n)=1/30*(n^5+15*n^2*(n+1)^2-10*n*(n+1)*(2*n+1)+15*n*(n+1)-6*n)
先求出S(n),利用容斥原理去掉是n的质因子的倍数的数的四次幂之和。。。
#include<iostream> #include<algorithm> #include<cstring> #include<vector> #define N 100100 #include<cstdio> using namespace std; typedef long long ll; const ll mod=1000000007; bool p ; int s ; vector<int>factor; void prime(){ memset(p,1,sizeof(p)); for(int i=2;i*i<N;i++) for(int j=i;i*j<N;j++) p[i*j]=0; s[0]=0; for(int i=2;i<N;i++) if(p[i])s[++s[0]]=i; } ll exgcd(int a,int b,ll &x,ll &y){ if(b==0){ x=1; y=0; return a; } ll d=exgcd(b,a%b,x,y); ll t=x; x=y; y=t-(a/b)*y; return d; } void div(ll n){ //分解因式 factor.clear(); for(int i=1;s[i]*s[i]<=n;i++){ if(n%s[i]==0){ factor.push_back(s[i]); while(n%s[i]==0)n/=s[i]; } } if(n>1)factor.push_back(n); } ll calsum(ll n){ ll a1=6*(n*n%mod)*(n*n%mod)%mod*n%mod; ll a2=15*n%mod*n%mod*(n+1)%mod*(n+1)%mod; ll a3=10*n%mod*(n+1)%mod*(2*n+1)%mod; ll a4=15*n%mod*(n+1)%mod; ll a5=6*n%mod; ll ans=(a1+a2-a3+a4-a5)%mod; return ans; } ll sum(ll n){ //求和 ll ans=calsum(n); ll x,y; ll d=exgcd(30,mod,x,y); x*=ans; x=(x%mod+mod)%mod; return x; } ll Mod(ll a,ll b){ return a*a%mod*a%mod*a%mod*b%mod; } void solve(ll n){ div(n); ll ans=sum(n); int c=factor.size(); for(int i=1;i<(1<<c);i++){//容斥原理 ll num=1; int a=0; int cnt=0; int ii=i; while(ii>0){ if(ii&1){ num*=factor[cnt]; ++a; } ii>>=1; ++cnt; } ll cc=Mod(num,sum(n/num)); if(a&1){ ans=(ans-cc+mod)%mod; }else{ ans=(ans+cc)%mod; } } cout<<ans<<endl; } int main(){ // freopen("test.out","w",stdout); ll n,m; int t; prime(); cin>>t; while(t--){ cin>>n; solve(n); } return 0; }
相关文章推荐
- 【 HDU 4059 The Boss on Mars】 差分序列+容斥
- hdu 4059 The Boss on Mars
- HDU 4059 The Boss on Mars ( 容斥原理)
- hdu 4059 The Boss on Mars(容斥原理)
- hdu 4059 The Boss on Mars 容斥原理 数列通项公式
- 数论 + 容斥 - HDU 4059 The Boss on Mars
- hdu 4059 The Boss on Mars
- hdu 4059 The Boss on Mars 容斥原理
- HDU 4059 The Boss on Mars(容斥原理 + 四次方求和)
- HDU-4059 The Boss on Mars 容斥定理
- HDU 4059 The Boss on Mars【容斥原理】
- HDU 4059 The Boss on Mars(容斥原理 + 四次方求和)
- HDU 4059 The Boss on Mars(数论)
- HDU 4059 The Boss on Mars(容斥原理+四次方数列求和)
- HDU 4059 The Boss on Mars(容斥原理)
- hdu 4059 The Boss on Mars(纳入和排除)
- HDU - 4059 The Boss on Mars - (容斥定理,1~n的4次方之和)
- HDU 4059 The Boss on Mars(容斥原理)
- hdu 4059 The Boss on Mars(容斥)
- HDU 4059 The Boss on Mars 容斥原理