题目:

分析:

上来看到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. [vue/no-parsing-error] Parsing error: x-invalid-end-tag.eslint-plugin-vue

    [vue/no-parsing-error] Parsing error: x-invalid-end-tag.eslint-plugin-vue   解决方案:vscode里面选择设置->搜索 ...

  2. Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(一)

    在之前已经写了关于Git,Gitlab以及Ansible的两篇博客<Git+Gitlab+Ansible剧本实现一键部署Nginx--技术流ken>,<Git+Gitlab+Ansi ...

  3. .Net Core 3.0 的 docker 容器中运行 无法 访问 Oracle数据库

    .Net  Core 3.0 的 docker 容器中运行 无法 访问 Oracle数据库  , 一直报下面的错误 ORA-00604: error occurred at recursive SQL ...

  4. 大学最新毕业论文参考文献,包含java,jsp,mysql,Android,sql,PHP

    每当毕业论文写到最后需要参考文献时,往往是很令人头疼的,因为有的老师对参考文献的要求是很多的,比如需要国内的和国外的,时间必须是近三年的,满足XXX要求的文献至少需要三篇以上等等.今天我就来给大家整理 ...

  5. MediatorPattern(中介者模式)-----Java/.Net

    中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性.这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护.中介者模式属于行为型模式.

  6. 机器学习之路--KNN算法

    机器学习实战之kNN算法   机器学习实战这本书是基于python的,如果我们想要完成python开发,那么python的开发环境必不可少: (1)python3.52,64位,这是我用的python ...

  7. springboot + freemarker 实现计算器

    使用RequestParam("") 接受参数 其后参数有自动类型转换的作用 @RequestParam("firstNumber") double first ...

  8. 开源工具abaplint的介绍

    长期以来,SAP提供的标准ABAP开发工具是我们对代码进行检查的唯一方式.这意味着我们只能对ABAP服务器上的ABAP代码做出分析,而离线代码则成为了纯粹的文本,开发者无法对其进行检查.abaplin ...

  9. iFit—Smart Cardio Equipment 简介与下载

    iFit—Smart Cardio Equipment 无法在谷歌商店中下载,经过技术提取app只可以直接通过下载app安装简单方便 实测机型:华为荣耀畅玩2平板, 小米6X,360N5S均测试无BU ...

  10. 结巴分词 java 高性能实现,是 huaban jieba 速度的 2倍

    Segment Segment 是基于结巴分词词库实现的更加灵活,高性能的 java 分词实现. 变更日志 创作目的 分词是做 NLP 相关工作,非常基础的一项功能. jieba-analysis 作 ...