博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 3930 [CQOI2015]选数
阅读量:5991 次
发布时间:2019-06-20

本文共 2215 字,大约阅读时间需要 7 分钟。

题目链接

题解

反演得到

∑i=1⌊h/k⌋μ(i)(⌊hki⌋−⌊l−1ki⌋)n \sum_{i=1}^{\lfloor h/k\rfloor} \mu(i) (\lfloor \frac{h}{ki}\rfloor-\lfloor\frac{l-1}{ki}\rfloor)^n i=1h/kμ(i)(kihkil1)n
整除分块直接算即可。

代码

#include #include 
#include
int read(){
int x=0,f=1; char ch=getchar(); while((ch<'0')||(ch>'9')) {
if(ch=='-') {
f=-f; } ch=getchar(); } while((ch>='0')&&(ch<='9')) {
x=x*10+ch-'0'; ch=getchar(); } return x*f;}const int maxn=1000000;const int mod=1000000007;const int inf=0x3f3f3f3f;int p[maxn+10],prime[maxn+10],cnt,mu[maxn+10];int getprime(){
p[1]=mu[1]=1; for(int i=2; i<=maxn; ++i) {
if(!p[i]) {
prime[++cnt]=i; mu[i]=mod-1; } for(int j=1; (j<=cnt)&&(i*prime[j]<=maxn); ++j) {
int x=i*prime[j]; p[x]=1; if(i%prime[j]==0) {
mu[x]=0; break; } mu[x]=mod-mu[i]; } } for(int i=1; i<=maxn; ++i) {
mu[i]+=mu[i-1]; if(mu[i]>=mod) {
mu[i]-=mod; } } return 0;}std::map
mp;int getsum(int n){
if(n<=maxn) {
return mu[n]; } if(mp.count(n)) {
return mp[n]; } int ans=1; for(int l=2,r; l<=n; l=r+1) {
r=n/(n/l); ans-=1ll*(r-l+1)*getsum(n/l)%mod; if(ans<0) {
ans+=mod; } } return mp[n]=ans;}int n,k,s,t;int quickpow(int a,int b){
int res=1; while(b) {
if(b&1) {
res=1ll*res*a%mod; } a=1ll*a*a%mod; b>>=1; } return res;}int main(){
getprime(); n=read(); k=read(); s=read(); t=read(); int ans=0; for(int l=1,r; l<=t/k; l=r+1) {
r=inf; if(t/(l*k)!=0) {
r=std::min(r,t/(t/(l*k))); } if((s-1)/(l*k)!=0) {
r=std::min(r,(s-1)/((s-1)/(l*k))); } r/=k; ans=(ans+1ll*(getsum(r)-getsum(l-1)+mod)*quickpow((t/(k*l))-((s-1)/(k*l)),n))%mod; } printf("%d\n",ans); return 0;}

转载于:https://www.cnblogs.com/Canopus-wym/p/10376075.html

你可能感兴趣的文章
[BZOJ 3170] [TJOI 2013] 松鼠聚会
查看>>
ARM 的异常处理
查看>>
字符串 值、输出效果、转义
查看>>
python类型
查看>>
第八周-学习进度条
查看>>
eigen quick reference
查看>>
Linux命令——screen
查看>>
asp.net 跳转网页
查看>>
聊聊从web session的共享到可扩展缓存设计
查看>>
八. python面向对象(反射和内置方法)
查看>>
ViewPager实现引导页
查看>>
int i=1,j=2; int k=i+++j;
查看>>
Debugging OpenResty and Nginx Lua scripts with Zer
查看>>
jetty配置jndi数据源
查看>>
Eclipse更改@Author的属性以及注释模板的一些设置
查看>>
Golang加密系列之MD5
查看>>
在struts-2.2.3.1中加入<s:head theme="ajax"/>这个标签,报错
查看>>
SHOW PROCESSLIST的各个状态说明
查看>>
apache Internal Server Error 解决方法
查看>>
win服务器中安装开源电子邮箱服务端
查看>>