BZOJ 3930: [CQOI2015]选数 莫比乌斯反演 + 杜教筛
- #include<bits/stdc++.h>
- #define maxn 1040000
- #define M 1000001
- #define inf 0x7f7f7f7f
- #define ll long long
- using namespace std;
- ll mod = 1000000007;
- void setIO(string s)
- {
- string in=s+".in";
- freopen(in.c_str(),"r",stdin);
- }
- map<int,ll>ansmu;
- int cnt;
- bool vis[maxn];
- int prime[maxn], mu[maxn];
- ll sumv[maxn];
- ll qpow(ll base,ll k)
- {
- ll tmp=1;
- while(k)
- {
- if(k&1) tmp=tmp*base%mod;
- base=base*base%mod;
- k>>=1;
- }
- return tmp;
- }
- void Linear_shaker()
- {
- mu[1]=1;
- int i,j;
- for(i=2;i<=M;++i)
- {
- if(!vis[i]) prime[++cnt]=i, mu[i]=-1;
- for(j=1;j<=cnt&&1ll*i*prime[j]<=M;++j)
- {
- vis[i*prime[j]]=1;
- if(i%prime[j]==0)
- {
- mu[i*prime[j]]=0;
- break;
- }
- mu[i*prime[j]]=-mu[i];
- }
- }
- for(i=1;i<=M;++i) sumv[i]=(sumv[i-1]+mu[i]+mod)%mod;
- }
- ll get(ll n)
- {
- if(n<=M) return sumv[n];
- if(ansmu[n]) return ansmu[n];
- ll i,j,re=0;
- for(i=2;i<=n;i=j+1)
- {
- j=(n/(n/i));
- re=(re+(j-i+1)%mod*get(n/i)%mod+mod)%mod;
- }
- return ansmu[n]=(1ll-re+mod)%mod;
- }
- int main()
- {
- // setIO("input");
- ll n,k,L,R,i,j,re=0;
- scanf("%lld%lld%lld%lld",&n,&k,&L,&R);
- L = (L - 1) / k, R = R / k;
- Linear_shaker();
- for(i=1;i<=R;i=j+1)
- {
- j=min(R/(R/i), L/i?L/(L/i):inf);
- re=(re+qpow(R/i-L/i, n) * (get(j)-get(i-1)+mod)%mod)%mod;
- }
- printf("%lld\n",re);
- return 0;
- }
BZOJ 3930: [CQOI2015]选数 莫比乌斯反演 + 杜教筛的更多相关文章
- 【bzoj3930】[CQOI2015]选数 莫比乌斯反演+杜教筛
题目描述 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一 ...
- luogu3172 [CQOI2015]选数 莫比乌斯反演+杜教筛
link 题目大意:有N个数,每个数都在区间[L,H]之间,请求出所有数的gcd恰好为K的方案数 推式子 首先可以把[L,H]之间的数字gcd恰好为K转化为[(L-1)/K+1,H/K]之间数字gcd ...
- [BZOJ 3930] [CQOI 2015]选数(莫比乌斯反演+杜教筛)
[BZOJ 3930] [CQOI 2015]选数(莫比乌斯反演+杜教筛) 题面 我们知道,从区间\([L,R]\)(L和R为整数)中选取N个整数,总共有\((R-L+1)^N\)种方案.求最大公约数 ...
- BZOJ 3930: [CQOI2015]选数 莫比乌斯反演
https://www.lydsy.com/JudgeOnline/problem.php?id=3930 https://blog.csdn.net/ws_yzy/article/details/5 ...
- BZOJ 4176 Lucas的数论 莫比乌斯反演+杜教筛
题意概述:求,n<=10^9,其中d(n)表示n的约数个数. 分析: 首先想要快速计算上面的柿子就要先把d(ij)表示出来,有个神奇的结论: 证明:当且仅当a,b没有相同的质因数的时候我们统计其 ...
- [复习]莫比乌斯反演,杜教筛,min_25筛
[复习]莫比乌斯反演,杜教筛,min_25筛 莫比乌斯反演 做题的时候的常用形式: \[\begin{aligned}g(n)&=\sum_{n|d}f(d)\\f(n)&=\sum_ ...
- BZOJ 3930: [CQOI2015]选数 递推
3930: [CQOI2015]选数 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pro ...
- 【刷题】BZOJ 3930 [CQOI2015]选数
Description 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公 ...
- 【BZOJ3930】[CQOI2015]选数 莫比乌斯反演
[BZOJ3930][CQOI2015]选数 Description 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律 ...
随机推荐
- C#模块初始化注入
这个功能可以实现很多很有用的功能,比如程序集加密,Hook安装等.英文转载备忘. 原地址:https://www.coengoedegebure.com/module-initializers-i ...
- [Udemy] ES 7 and Elastic Stack - part 2
Section 3: Searching with Elasticsearch query with json 分页返回 Sort full text 的内容不能用来sort, 比如movie的 ti ...
- Spring002--实现读写分离(Mysql实现主从复制)
Spring AOP实现读写分离(Mysql实现主从复制) 本文来自于博客:http://www.cnblogs.com/bjlhx/p/8297460.html 一.背景 一般应用对数据库而言都是“ ...
- "SQLServer复制需要有实际的服务器名称才能连接到服务器,请指定实际的服务器名"
最近在学习SQL SERVER的高级复制技术的时候,遇到一个小问题,就是用本地SQL SERVER连接服务器的数据库时,在查看复制功能的发布服务器时,连接不上,弹出一个错误提示框架,如下:原来在自己本 ...
- Mac入门--如何使用brew安装多个PHP版本
一 安装7.1 1. 安装PHP7.1 brew install php@7.1 2. 修改配置 php-fpm.conf,一般在/usr/local/etc/php下(如果php-fpm.conf中 ...
- SpringBoot 使用Mybatis+MySql
pom配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http: ...
- [Web 前端] 012 css 元素溢出
overflow 当子元素的尺寸超过父元素的尺寸时,需要设置父元素显示溢出的子元素的方式 通过 overflow 属性来设置 概览 参数 释义 visible(默认值) 内容不会被修剪会呈现在元素框之 ...
- jquery悬停和移出事件
$('#hides').mouseover(function () { alert("sdfdsf")}).mouseout(function () { alert("啊 ...
- [Codeforces 1199C]MP3(离散化+二分答案)
[Codeforces 1199C]MP3(离散化+二分答案) 题面 给出一个长度为n的序列\(a_i\)和常数I,定义一次操作[l,r]可以把序列中<l的数全部变成l,>r的数全部变成r ...
- 数组去重,排序,重复次数,两个数组合并,两个数组去重,map(),filter(),reduce()
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...