题目:

分析:

上来看到k=2,。。。

SB杜教筛phi

有点感冒,这把养生一点。。。

于是写了55分走人了。。

下来一看挺简单的啊2333

不考虑gcd时,构造数列的方案为C(N+K-1,K)

考虑gcd时,就要套mu了

ans=sigma(i=1...n)mu[i]*F(n/i)

其中f(x)=C(x+K-1,K)

然后有一个公式。。。

summu[n]=1-sigma(d=2...n)summu[n/d]

这样就可以n^(2/3)求summu了

对于F,由于K很小,可以暴力算。。。

但是这样极限数据会很卡诶。。。

考虑F分段处理

当x+K-1小于1e6时,可以预处理组合数

又由于x+K-1大于1e6的情况很少。。。

所以是可以过的2333。。。。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<map> #define maxn 1000005
#define INF 0x3f3f3f3f
#define MOD 1000000007 using namespace std; inline int getint()
{
int num=,flag=;char c;
while((c=getchar())<''||c>'')if(c=='-')flag=-;
while(c>=''&&c<='')num=num*+c-,c=getchar();
return num*flag;
} int n,K;
int N=;
int pri[maxn],cnt,np[maxn];
int mu[maxn];
long long fac[maxn],inv[maxn];
long long ans;
map<int,long long>M; inline void init()
{
mu[]=;
for(int i=;i<=N;i++)
{
if(!np[i])pri[++cnt]=i,mu[i]=-;
for(int j=;j<=cnt&&i*pri[j]<=N;j++)
{
np[i*pri[j]]=;
if(i%pri[j]==)break;
mu[i*pri[j]]=-mu[i];
}
}
for(int i=;i<=N;i++)mu[i]+=mu[i-];
for(int i=;i<=N;i++)(mu[i]+=MOD)%=MOD;
fac[]=fac[]=inv[]=inv[]=;
for(int i=;i<=N;i++)fac[i]=fac[i-]*i%MOD;
for(int i=;i<=N;i++)inv[i]=inv[MOD%i]*(MOD-MOD/i)%MOD;
for(int i=;i<=N;i++)inv[i]=inv[i]*inv[i-]%MOD;
} inline long long solve(int x)
{
if(x<=N)return mu[x];
if(M.count(x))return M[x];
long long num=;
for(int i=,j;i<=x;i=j+)
{
j=x/(x/i);
(num-=(j-i+)*solve(x/i)%MOD)%=MOD;
}
return M[x]=(num+MOD)%MOD;
} inline long long C(int p,int q)
{return fac[p]*inv[q]%MOD*inv[p-q]%MOD;} inline long long cal(int x)
{
if(x+K-<=N)return C(x+K-,K);
long long tmp=;
for(int i=;i<=K;i++)tmp=tmp*((x+K-)-i+)%MOD;
return tmp*inv[K]%MOD;
} int main()
{
int T=getint();
init();
while(T--)
{
M.clear();
n=getint(),K=getint();
ans=;
for(int i=,j;i<=n;i=j+)
{
j=n/(n/i);
(ans+=(solve(j)-solve(i-)+MOD)*cal(n/i)%MOD)%=MOD;
}
printf("%lld\n",ans);
}
}

20191212模拟赛 问题B的更多相关文章

  1. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  2. NOI模拟赛 Day1

    [考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...

  3. NOIP第7场模拟赛题解

    NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...

  4. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  5. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  6. 小奇模拟赛9.13 by hzwer

    2015年9月13日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿(explo) [题目背景] 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值w)的飞船,按既定路线依次飞 ...

  7. PKUSC 模拟赛 day1 下午总结

    下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstd ...

  8. [GRYZ]寒假模拟赛

    写在前面 这是首次广饶一中的OIERS自编自导,自出自做(zuo)的模拟赛. 鉴于水平气压比较低,机(wei)智(suo)的WMY/XYD/HYXZC就上网FQ下海找了不少水(fei)题,经过他们优( ...

  9. BZOJ2741: 【FOTILE模拟赛】L

    2741: [FOTILE模拟赛]L Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 1170  Solved: 303[Submit][Status] ...

随机推荐

  1. dotnet core 集成到 Mattermost 聊天工具

    在找了很久的团队交流工具,发现了 Mattermost 最好用,但是还需要做一些定制化的功能,于是就找到了 Mattermost 插件开发,还找到了如何自己写服务集成到 Mattermost 里面 本 ...

  2. [竞赛]Beat Matching(对拍)

    对拍的基本理论这里恕我不一一叙述,不会的请转身到这里:http://blog.csdn.net/code12hour/article/details/51252457 分为以下几个部分: 1.暴力伪标 ...

  3. oracle中update语句修改多个字段

    如需要修改下列数据:表名为student 一般会这样写: update student set sname = '李四', sage = 20, sbirthday = to_date('2010-0 ...

  4. 驳“C语言已经死了”

    http://blog.csdn.net/xushiweizh/article/details/1476422

  5. 29(30).socket网络基础

    转载:https://www.cnblogs.com/linhaifeng/articles/6129246.html 一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网 ...

  6. Django 中配置MySQL数据库

    在Django的项目中会默认使用sqlite的数据库 配置MySQL需要在setting.py 里加入以下设置: 配置数据库 DATABASES = { 'default': { 'ENGINE': ...

  7. CodeForces 1182D

    图论的思维题,太秀了,网上答案也不多,我就也来bb吧 总之47个样例姑且是过了,不知道还有没有反例: 会求树的重心和中心了,挺好 #include<cstdio> #include< ...

  8. 【他山之石】jenkins忘记初始化密码解决办法

    没有太好的方式,网上有的是这样子的,找到 /var/lib/jenkins/users/username/config.xml, 修改为一个已知的 hash 值 #jbcrypt:$2a$10$Dda ...

  9. mysql授权用户权限

    mysql 用户管理和权限设置   用户管理 mysql>use mysql; 查看 mysql> select host,user,password from user ; 创建 mys ...

  10. Linux入门系列1--环境准备及Linux安装

    "工欲善其事.必先利其器",本文作为"Linux零基础入门系列"开篇,将完整演示整个开发环境的安装和配置过程,为后续的开发和实验做好基础准备.如果您已安装好环境 ...