【数论】【杜教筛】选数(P3172)

正题

P3172


题目大意

在 [L,R] 选n个数,问gcd=k的方案数


解题思路

因为gcd=k,那么所选的数都是k的倍数,那么可以让L,R整除k,那么有

∑a1=LR∑a2=LR...∑an=LR[gcd(a1,a2...an)=1]\sum_{a_1=L}^R\sum_{a_2=L}^R...\sum_{a_n=L}^R[gcd(a_1,a_2...a_n)=1]a1=LRa2=LR...an=LR[gcd(a1,a2...an)=1]

∑a1=lr∑a2=lr...∑an=lr∑d∣a1,d∣a2...d∣anμ(d)\sum_{a_1=l}^r\sum_{a_2=l}^r...\sum_{a_n=l}^r\sum_{d|a_1,d|a_2...d|a_n}\mu(d)a1=lra2=lr...an=lrda1,da2...danμ(d)

∑d=1nμ(d)(rd−l−1d)n\sum_{d=1}^n\mu(d)(\frac{r}{d}- \frac{l-1}{d})^nd=1nμ(d)(drdl1)n

然后可以整除分块,μ\muμ 用杜教筛求


code

#include<map>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 2000210
#define mod 1000000007
using namespace std;
ll n,k,L,R,w,ans,mu[N],p[N],prime[N];
map<ll,ll>smu;
const ll MX=2e6;
void work()
{mu[1]=1;for(ll i=2;i<=MX;++i){if(!p[i]){mu[i]=-1;prime[++w]=i;}for(ll j=1;j<=w&&i*prime[j]<=MX;++j){p[i*prime[j]]=1;if(i%prime[j]==0)break;mu[i*prime[j]]=-mu[i];}}for(ll i=2;i<=MX;++i)mu[i]+=mu[i-1];return;
}
ll S(ll n)
{if(n<=MX)return mu[n];if(smu.find(n)!=smu.end())return smu[n];ll g=1;for(ll l=2,r;l<=n;l=r+1){r=n/(n/l);g-=S(n/l)*(r-l+1);}smu[n]=g;return g;
}
ll ksm(ll x,ll y)
{ll z=1;while(y){if(y&1)z=z*x%mod;x=x*x%mod;y>>=1;}return z;
}
int main()
{work();scanf("%lld%lld%lld%lld",&n,&k,&L,&R);L=(L+k-1)/k-1;R/=k;for(ll l=1,r;l<=R;l=r+1){if(L/l)r=min(L/(L/l),R/(R/l));else r=R/(R/l);(ans+=(S(r)-S(l-1))*ksm(R/l-L/l,n)%mod+mod)%=mod;}printf("%lld",ans);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319248.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【模板】吉老师线段树

ACM模板 目录区间取最值区间取最值 Gorgeous Sequence 区间最值操作往往采用以下办法 线段树维护&#xff1a; 区间最大值mx\text{mx}mx区间严格次大值smx\text {smx}smx区间和sum\text{sum}sum区间最大值个数cnt\text{cnt}cnt区间最值懒标记lazy\text{lazy}lazy 实现区间…

2020牛客国庆集训派对day4 Digits Are Not Just Characters

Digits Are Not Just Characters 题意&#xff1a; 比较大小&#xff0c;如果比目标字符串大输出“”&#xff0c;相等也输出“”&#xff0c;小则输出“-”&#xff1a; 比较规则&#xff1a; 字母大于数字 两个字母比较按照ASCII码 当被解释为十进制数时&#xff0c;两个数…

CF453C-Little Pony and Summer Sun Celebration【构造】

正题 题目链接:https://www.luogu.com.cn/problem/CF453C 题目大意 nnn个点mmm条边的一张无向图&#xff0c;每个节点有一个wiw_iwi​表示该点需要经过奇数/偶数次。 求一条满足条件的长度不超过4n4n4n的路径 1≤n,m≤1051\leq n,m\leq 10^51≤n,m≤105 解题思路 一个结论就…

在碰撞中成长 - 北京银行的DevOps实践之路

2018年10/27日&#xff0c;在上海召开的微软年度最大规模的技术盛会—微软2018技术暨生态大会上&#xff0c;北京银行渠道系统负责人&敏捷团队负责人周兵女士和大家一起分享了北京银行的DevOps 实践转型经验&#xff0c;得到了大会听众的热烈评价和共鸣&#xff0c;会后众多…

【笛卡尔树】【线段树】meetings 会议(P5044)

正题 P5044 题目大意 给出一个序列a&#xff0c;设 dist(x,y)max⁡ixyaidist(x,y)\max_{ix}^ya_idist(x,y)maxixy​ai​&#xff0c;有m个询问&#xff0c;对于每个询问&#xff0c;给出 l,r&#xff0c;让你找一个点x(l≤x≤r)(l\leq x\leq r)(l≤x≤r)&#xff0c;使得 ∑i…

codeforces438 D. The Child and Sequence

2020威海区域赛G. Caesar Cipher就用到了此思想&#xff08; 今天碰到模板题了还是再写一遍吧 D. The Child and Sequence 区间取模操作模板题 有一个公式 x%p<x2(x>p)x\%p<\frac{x}{2}(x>p)x%p<2x​(x>p) 由此对于每一个数最多模log次&#xff0c;如果我们…

2020牛客国庆集训派对day4 Emergency Evacuation

Emergency Evacuation 题意&#xff1a; 有n个人在不同的位置上&#xff0c;在最后面有一个出口exit&#xff0c;所有人都要逃离出去&#xff08;走出出口&#xff09;&#xff0c;且每个格子最多容纳一个人&#xff0c;当有人挡在前面时&#xff0c;后面的人必须停留&#x…

P3170-[CQOI2015]标识设计【插头dp】

正题 题目链接:https://www.luogu.com.cn/problem/P3170 题目大意 给出n∗mn*mn∗m的网格上有一些障碍&#xff0c;要求用三个LLL形&#xff08;高宽随意&#xff0c;不能退化成线段/点&#xff09;覆盖格子且LLL形之间不能重叠。 求覆盖方案&#xff08;每个LLL形相同&…

【活动(广州)】MonkeyFest2018 微软最有价值专家讲座

MonkeyFest2018微软最有价值专家讲座Monkey Fest 是一个一年一度由全球Microsoft Xamarin跨平台开发者发起的全球性社区活动&#xff0c;主要是推广在云、人工智能、大数据、移动开发等技术。本次活动同时在新加坡&#xff0c;美国&#xff0c;日本&#xff0c;加拿大&#xff…

【数学】Natasha, Sasha and the Prefix Sums(CF1204E)

正题 luogu CF1204E 题目大意 给出序列a&#xff0c;由n个1和m个-1组成&#xff0c;设 f 为最大前缀和和0的最大值&#xff0c;问全排列的 f 之和 解题思路 可以问题转换到平面图上&#xff0c;把1看作往上走&#xff0c;-1看作往下走 那么问题就变成了求 (0,0) 到 (nm,n-m…

codeforces1454 F. Array Partition

这周忙死&#xff0c;一直没机会吧补一下题&#xff0c;周二晚上打的div3&#xff0c;过了A~E&#xff0c;F就看了下题目就没时间了&#xff0c;无聊的时候想应该会用到ST表&#xff0c;然后想要维护指针&#xff0c;后来写的时候发现维护不了&#xff0c;然后就歇菜了。。。 …

2020牛客国庆集训派对day4 Arithmetic Progressions

Arithmetic Progressions 链接&#xff1a;https://ac.nowcoder.com/acm/contest/7831/B 来源&#xff1a;牛客网 题目描述 An arithmetic progression is a sequence of numbers a1, a2, ..., ak where the difference of consecutive members ai1−ai is a constant (1 ≤ …

P4457-[BJOI2018]治疗之雨【期望dp,高斯消元】

正题 题目链接:https://www.luogu.com.cn/problem/P4457 题目大意 开始一个人最大生命值为nnn&#xff0c;剩余hphphp点生命&#xff0c;然后每个时刻如果生命值没有满那么有1m1\frac{1}{m1}m11​的概率回复一点生命&#xff0c;然后敌人攻击kkk次&#xff0c;每次有1m1\frac…

互联网公司为什么普遍996而不是666

根据skinshoe wu的遭遇&#xff0c;解释一下互联网行业的12小时工作制以及996。题目说的有点绝对&#xff0c;这里先澄清一下&#xff1a;有的公司是10106&#xff0c;9106&#xff0c;10126&#xff0c;995&#xff0c;甚至955&#xff0c;007的都有&#xff0c;我只说大多数&…

【DP】【四边形不等式】邮局(P4767)

正题 P4767 题目大意 给出坐标轴上的n个点&#xff0c;让你选择m个点作为特殊点&#xff0c;使所有点到最近特殊点的距离之和最小 解题思路 考虑对于一个区间选择一个特殊点的最小代价&#xff0c;可以把所有点到当前点的路径分割开来&#xff0c;即每段距离走的次数为1,2,3…

IdentityServer4之JWT签名(RSA加密证书)及验签

一、前言在IdentityServer4中有两种令牌&#xff0c;一个是JWT和Reference Token&#xff0c;在IDS4中默认用的是JWT&#xff0c;那么这两者有什么区别呢&#xff1f;二、JWT与Reference Token的区别1、JWT(不可撤回)  JWT是一个非常轻巧的规范&#xff0c;一般被用来在身份提…

2020牛客国庆集训派对day4 What Goes Up Must Come Down

What Goes Up Must Come Down 题意&#xff1a; 我们规定一个序列合理&#xff1a;当一个序列左部分是非降序列&#xff0c;右部分是非升序列&#xff08;左右部分可为0&#xff0c;也就是整体可以为非降序列&#xff0c;非升序列&#xff09; 题解&#xff1a; 树状数组来…

codeforces1451 E. Bitwise Queries(位运算妙用)

E1. Bitwise Queries (Easy Version) ab(a&b)(a∣b)ab(a\&b)(a|b)ab(a&b)(a∣b) 根据上述式子用333次$&和333次∣|∣操作求出a1a2,a2a3,a1a3a_1a_2,a_2a_3,a_1a_3a1​a2​,a2​a3​,a1​a3​由此得出a1,a2,a3a_1,a_2,a_3a1​,a2​,a3​ 根据a1⊕aixa_1\oplus a…

P4240-毒瘤之神的考验【莫比乌斯反演,平衡规划】

正题 题目链接:https://www.luogu.com.cn/problem/P4240 题目大意 QQQ组数据给出n,mn,mn,m求 ∑i1n∑j1mφ(ij)\sum_{i1}^n\sum_{j1}^m\varphi(i\times j)i1∑n​j1∑m​φ(ij) 1≤Q≤104,1≤n,m≤1051\leq Q\leq 10^4,1\leq n,m\leq 10^51≤Q≤104,1≤n,m≤105 解题思路 首先…

【最小生成树】水箱(P5952)

正题 P5952 题目大意 有一个n*m的网格&#xff0c;每个网格之间有一个板&#xff0c;给出每个板的高度&#xff08;边界有一个高度为 ∞\infty∞ 的墙&#xff09;&#xff0c;在每个网格中注水&#xff08;必须是非负整数&#xff09;&#xff0c;使得两个高度不等且相邻的网…