反演复习计划COGS2433&&bzoj3930,CQOI2015选数爱蜜莉雅的冰魔法

Posted zcysky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反演复习计划COGS2433&&bzoj3930,CQOI2015选数爱蜜莉雅的冰魔法相关的知识,希望对你有一定的参考价值。

同bzoj3930。

(日常盗题图)

技术分享

#include<bits/stdc++.h>
#define N 1000010  
#define yql 1000000007
#define ll long long
using namespace std;
int n;
ll m,l,r,k;ll f[N];
ll Pow(ll x,int y){
    ll ans=1;
    while(y){if (y&1) ans=ans*x%yql;  x=x*x%yql;  y>>=1;  }
    return ans;
}
ll read(){
    ll x=0;int f=1;char ch;
    do{ch=getchar();if(ch==-)f=-1;}while(ch<0||ch>9);
    do{x=x*10+ch-0;ch=getchar();}while(ch>=0&&ch<=9);
    return x*f;
}
int main(){
    freopen("aimiliyadeicemagic.in","r",stdin);
    freopen("aimiliyadeicemagic.out","w",stdout);
    scanf("%d",&n);k=read();l=read();r=read();
    for (ll i=r-l;i>=1;i--){  
        ll lx=(l-1)/(k*i),rx=r/(k*i);  
        f[i]=(Pow(rx-lx,n)-(rx-lx)+yql)%yql;  
        for (int j=2;i*j<=r-l;j++)  f[i]=(f[i]-f[i*j]+yql)%yql;  
    }  
    if (l<=k&&k<=r) f[1]++;  
    printf("%d\n",f[1]);  
}

 

以上是关于反演复习计划COGS2433&&bzoj3930,CQOI2015选数爱蜜莉雅的冰魔法的主要内容,如果未能解决你的问题,请参考以下文章

反演复习计划COGS2431爱蜜莉雅的求助

反演复习计划bzoj1011zap-queries

COGS 1534 [NEERC 2004]K小数 &&COGS 930 [河南省队2012] 找第k小的数 可持久化01Trie

反演复习计划bzoj3529数表

反演复习计划51nod1594Gcd and Phi

反演复习计划bzoj2154Crash的数字表格