BZOJ 3930 CQOI2015 选数 莫比乌斯反演

news/2024/11/8 4:35:09/

题目见 http://pan.baidu.com/s/1o6zajc2


此外不知道H-L<=10^5这个条件是干嘛的。。。。

#include <map>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define M 10001000
#define INF 0x3f3f3f3f
#define MOD 1000000007
using namespace std;
int mu[M],prime[1001001],tot;
bool not_prime[M];
map<int,long long> mu_sum;
long long n,d,l,r;
void Linear_Shaker()
{int i,j;mu[1]=1;for(i=2;i<=10000000;i++){if(!not_prime[i]){mu[i]=-1;prime[++tot]=i;}for(j=1;prime[j]*i<=10000000;j++){not_prime[prime[j]*i]=true;if(i%prime[j]==0){mu[prime[j]*i]=0;break;}mu[prime[j]*i]=-mu[i];}}for(i=1;i<=10000000;i++)mu[i]+=mu[i-1];
}
long long Mu_Sum(int x)
{if(x<=10000000)return mu[x];if(mu_sum.find(x)!=mu_sum.end())return mu_sum[x];long long i,last,re=1;for(i=1;i<=x;i=last+1){last=x/(x/i);if(x/i-1)re-=(Mu_Sum(last)-Mu_Sum(i-1))*(x/i-1);}return mu_sum[x]=re;
}
long long Quick_Power(long long x,int y)
{long long re=1;while(y){if(y&1) (re*=x)%=MOD;(x*=x)%=MOD; y>>=1;}return re;
}
long long Solve()
{long long i,last,re=0;for(i=1;i<=r;i=last+1){last=min(r/(r/i),l/i?(l/(l/i)):INF);re+=(Mu_Sum(last)-Mu_Sum(i-1))*Quick_Power(r/i-l/i,n);re%=MOD;}return (re%MOD+MOD)%MOD;
}
int main()
{cin>>n>>d>>l>>r;l=(l-1)/d;r=r/d;Linear_Shaker();cout<<Solve()<<endl;
}



http://www.ppmy.cn/news/142798.html

相关文章

超好用的Excel异步导出功能

之前也做过关于Excel的导出案例&#xff0c;此次也是在其基础上进行改造升级&#xff1a; https://www.bilibili.com/video/BV1kf4y1i761?p5 但是之前的导出存在这么几个问题&#xff1a; 如果是数据量很大容易导致页面卡死&#xff08;我曾导出30w条数据&#xff0c;直接…

POJ3970

派对 时间限制&#xff1a; 1000MS 内存限制&#xff1a; 65536K 提交总数&#xff1a; 4395 接受&#xff1a; 1639 描述 ACM&#xff08;密码小牛协会&#xff09;组织的 CEO 已邀请他的所有团队参加年度全体会议&#xff0c;作为一个非常有纪律的人&#xff0c;CEO 决定给第…

使用openssl命令加解密 aes-128-cbc的简单示例

网上找了下openssl 加解密 aes-128-cbc相关命令, 发现都比较含糊, 这里是摸索出的一个aes-12b-cbc加解密的实例. 将要加密的内容输入到plain.txt echo "1234567890abc" > plain.txt 使用openssl加密. -p 表示打印出加密用的salt, key, iv. salt就是所谓的加盐, 防…

CN3905规格书|CN3905完全替代MT3905|pin to pin替代MT3905芯片

CN3905是一款低EMI、异步、降压、开关模式转换器&#xff0c;带有内部功率MOSFET。 它提供了一个非常紧凑的解决方案&#xff0c;在广泛的输入电源范围内提供3.5A的连续电流&#xff0c;具有出色的负载和线路调节。CN3905通过良好控制的开关边缘实现低EMI特征。故障状态保护包…

RK3399之8250串口驱动

前言 内核版本4.4 平台 瑞芯微RK3399 8250串口 一、驱动整体框架 二、驱动结构体对象 1. struct uart_driver 串口驱动主要结构体&#xff0c;记录各个层对象&#xff0c;&#xff08;tty层&#xff0c;和uart层&#xff09; 2. |---struct tty_driver tty层结构体…

13472—3

快速阅读 Online GFLCJHBIIE Question EIADGHBMLK I Think KBECLFAIDG Wildlife ADBFGJEHFJ V.Moving CECEJIGFBD Women LDNGKFAHCJ Work LHBFCKGJDI How HDCFABEICG Fashion DHCAIBFGEF English EAIBHIGCFD 阅读 In times bring living Falling irreparably The …

python maximum recursion depth exceeded解决方式

用Python写了一个递归脚本&#xff0c;脚本如下 def fact(n):return fact_iter(n, 1)def fact_iter(num, product):if num 1:return productreturn fact_iter(num - 1, num*product) 执行&#xff1a;fact(1000) 报错如下&#xff1a; File "D:/python/spider/qq-music-s…

ORA-39087,ORA-39070,ORA-39002

ORA-39002: 操作无效 ORA-39070: 无法打开日志文件。 ORA-39087: 目录名 DUMP_DIR 无效 先检查SELECT * FROM dba_directories;里面directory和主机下面对应的位置有没有创建好 再检查当前的账户有没有权限 GRANT READ,WRITE ON DIRECTORY DUMP_DIR to xxxx; 再次执行成功。