传送门

分析

对这个$f(k)$整除分块,用杜教筛搞出$\mu$的部分然后另一部分快速幂即可

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<ctime>
#include<vector>
#include<set>
#include<map>
#include<stack>
using namespace std;
const int N = 5e6;
const int mod = 1e9+;
int p[N+],mu[N+];
bool is[N+];
map<int,int>MU;
inline void init(){
int i,j,cnt=;
mu[]=;
for(i=;i<=N;i++){
if(!is[i])p[++cnt]=i,mu[i]=-;
for(j=;j<=cnt,i*p[j]<=N;j++){
is[p[j]*i]=;
if(i%p[j]==){
mu[p[j]*i]=;
break;
}
mu[p[j]*i]=-mu[i];
}
}
for(i=;i<=N;i++)mu[i]=(mu[i]+mu[i-]+mod)%mod;
}
inline int go(int x){
if(x<=N)return mu[x];
if(MU[x])return MU[x];
int res=,le=,ri;
for(;le<=x;le=ri+){
ri=x/(x/le);
res=(res-(long long)(ri-le+)*go(x/le)%mod+mod)%mod;
}
return MU[x]=res;
}
inline int pw(int x,int p){
int res=;
while(p){
if(p&)res=(long long)res*x%mod;
x=(long long)x*x%mod;
p>>=;
}
return res;
}
int main(){
int n,m,p,k,L,R,le=,ri,Ans=;
scanf("%d%d%d%d",&p,&k,&L,&R);
n=R/k,m=(L-)/k;
init();
for(;le<=n;le=ri+){
if(m/le)ri=min(n/(n/le),m/(m/le));
else ri=n/(n/le);
Ans=(Ans+(long long)(go(ri)-go(le-)+mod)%mod*pw(n/le-m/le,p)%mod)%mod;
}
printf("%d\n",Ans);
return ;
}

p3172 选数的更多相关文章

  1. BZOJ 3930 Luogu P3172 选数 (莫比乌斯反演)

    手动博客搬家:本文发表于20180310 11:46:11, 原地址https://blog.csdn.net/suncongbo/article/details/79506484 题目链接: (Lu ...

  2. 【BZOJ-2732】集合选数 状压DP (思路题)

    2734: [HNOI2012]集合选数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1070  Solved: 623[Submit][Statu ...

  3. CODE VS1008选数

    #include<cstdlib> #include<cstdio> #include<iostream> #include<cmath> #inclu ...

  4. BZOJ 3930: [CQOI2015]选数 递推

    3930: [CQOI2015]选数 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pro ...

  5. bzoj 2734: [HNOI2012]集合选数 状压DP

    2734: [HNOI2012]集合选数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 560  Solved: 321[Submit][Status ...

  6. BZOJ3930: [CQOI2015]选数

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3930 容斥原理. 令l=(L-1)/k,r=R/k,这样找k的倍数就相当于找1的倍数. 设F[ ...

  7. 【BZOJ3930】选数(莫比乌斯反演,杜教筛)

    [BZOJ3930]选数(莫比乌斯反演,杜教筛) 题面 给定\(n,K,L,R\) 问从\(L-R\)中选出\(n\)个数,使得他们\(gcd=K\)的方案数 题解 这样想,既然\(gcd=K\),首 ...

  8. 【BZOJ2734】【HNOI2012】集合选数(状态压缩,动态规划)

    [BZOJ2734][HNOI2012]集合选数(状态压缩,动态规划) 题面 Description <集合论与图论>这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所 ...

  9. bzoj3930[CQOI2015]选数 容斥原理

    3930: [CQOI2015]选数 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1383  Solved: 669[Submit][Status] ...

随机推荐

  1. nyoj-1092-数字分隔(二)

    java大法好啊 思路:单独拿出整数部分分隔 题目链接 import java.math.BigDecimal; import java.util.Scanner; public class Main ...

  2. python list的extend和append方法

    append: Appends object at the end. x = [1, 2, 3] x.append([4, 5]) print (x) gives you: [1, 2, 3, [4, ...

  3. 利用HTML5开发Android笔记(中篇)

    资源来自于www.mhtml5.com 杨丰盛老师成都场的PPT分享 一个很简明的demo 可以作为入门基础 学习的过程中做了点笔记 整理如下 虽然内容比较简单 但是数量还是比较多的 所以分了3篇 ( ...

  4. 解决Opencv高低版本不兼容问题

    目前OpenCV版本已更新到2.4...由此出现了一系列问题,解决如下: 1.cxcore.h等头文件找不到: 法一.将opencv1.0中的各种.h或者.lib文件拷到opencv2.3.1对应in ...

  5. bzoj4513 储能表

    求 $\sum\limits_{i=0}^{n-1} \sum\limits_{j=0}^{m-1} max((x \space xor \space j) - k,0)$ ,膜 $p$ $n,m \ ...

  6. 1113. Integer Set Partition (25)

    Given a set of N (> 1) positive integers, you are supposed to partition them into two disjoint se ...

  7. 图的m着色问题 (回溯搜索)

    图的m着色问题 [问题描述]        给定无向连通图G和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的 ...

  8. linux使用收集

    Centos7 命令 # 查询正运行的java进程,建议使用jps,使用ps会将tail也显示出来 jps -lvm | grep '/home/chencye/tomcat/apache-tomca ...

  9. rabbitmq的vhost与用户管理

    当我们在创建用户时,会指定用户能访问一个虚拟机,并且该用户只能访问该虚拟机下的队列和交换机,如果没有指定,默认的是”/”;一个rabbitmq服务器上可以运行多个vhost,以便于适用不同的业务需要, ...

  10. Bootstrap确定样式让屏幕缩小后布局不乱

    解决方案是如下 结果如下: