题目:

分析:

上来看到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. java.lang.NoSuchMethodException: com.hgkj.controler.action.UserAction.newsLoginAction()

    java.lang.NoSuchMethodException: com.hgkj.controler.action.UserAction.newsLoginAction() 不久前在学习struts ...

  2. 【矩阵乘法优化dp】[Codeforces 621E] Wet Shark and Blocks

    http://codeforces.com/problemset/problem/621/E E. Wet Shark and Blocks time limit per test 2 seconds ...

  3. (转)hibernate缓存机制详细分析

    在本篇随笔里将会分析一下hibernate的缓存机制,包括一级缓存(session级别).二级缓存(sessionFactory级别)以及查询缓存,当然还要讨论下我们的N+1的问题. 随笔虽长,但我相 ...

  4. CString 的成员函数详解

    CSTRING的成员函数详解   typedef ATL::CStringT< TCHAR, StrTraitMFC_DLL< TCHAR > > CString;CStrin ...

  5. Java面向对象程序设计第9章1-9

    Java面向对象程序设计第9章1-9 1. 线程和进程的联系和区别是什么? 联系: 一个进程可以包括多个线程. 区别: 进程: 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,它是系统 ...

  6. 在加权无向图上求出一条从1号结点到N号结点的路径,使路径上第K+1大的边权尽量小

    二分+最短路算法 #include<cstdio> #include<iostream> #include<cstring> #include<algorit ...

  7. 使用原生JDBC方式对数据库进行操作

    使用原生JDBC方式对数据库进行操作,包括六个步骤: 1.加载JDBC驱动程序 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM.可以通过java.lang.Class类的静态方法forNa ...

  8. Redis 都有哪些数据类型?分别在哪些场景下使用比较合适?

    redis 主要有以下几种数据类型: string hash list set sorted set string 这是最简单的类型,就是普通的 set 和 get,做简单的 KV 缓存. set c ...

  9. 曹工改bug--这次,我遇到了一个难缠的栈溢出bug,还是日志相关的,真的难

    前言 前几天,在linux上部署一个war包应用时,tomcat直接起不来,查看tomcat的日志,catalina.out里没啥特别的,但是查看localhost日志,发现栈溢出了. [root@l ...

  10. $tarjan$简要学习笔记

    $QwQ$因为$gql$的$tarjan$一直很差所以一直想着要写个学习笔记,,,咕了$inf$天之后终于还是写了嘻嘻. 首先说下几个重要数组的基本定义. $dfn$太简单了不说$QwQ$ 但是因为有 ...