E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
BZOJ3930
[
bzoj3930
] [CQOI2015]选数
题目我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案。小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究。然而他很快发现工作量太大了,于是向你寻求帮助。你的任务很简单,小z会告诉你一个整数K,你需要回答他最大公约数刚好为K的选取方案有多少个。由于方案数较大,你只需要输出其除以1000000007的余数即
linzhuohang
·
2020-08-22 11:00
[
BZOJ3930
] [CQOI2015]选数 && 递推
记f[i]为gcd恰好为K*i的选数方案数那么对于每一个i记L为a/(K*i)上取整R为b/(K*i)那么他的方案数就为(R-L+1)^N-(R-L+1)再减去f[a*i](a=1,2,3....)最后的f[1]即为答案注意若a/K上取整==1那么全部选K也是一种方案需要+1#include#include#include#include#include#include#defineSFscanf
大蒟蒻syk
·
2020-08-13 18:21
数学
BZOJ
bzoj3930
(莫比乌斯反演)
图bypopoqqqhttp://blog.csdn.net/popoqqq/article/details/44917831这道题,反演的部分应该不是特别难,像我这样的初学者都可以搞清楚,但是这道题需要常见的那个分块优化,需要求mo【】的前缀和,但是数据范围是1e9,肯定是不能预处理出来,然后上面就已经给出了直接计算mo前缀和的方法,sqrt,但是直接计算时间复杂度又不行。。。至于mo前缀和计算
zhhx2001
·
2020-07-06 12:57
莫比乌斯反演
[
BZOJ3930
][CQOI2015]选数(数论+容斥)
首先,进行如下处理:1、如果L是K的倍数,那么把L变为LK,否则变为⌊LK⌋+1。2、把H变成⌊HK⌋。这样子容易得出,现在要求的就是在[L,H]之间,选数N次使选出的数最大公约数为1的方案数。现在,用f[i]表示选出的数的最大公约数i且选出的数不全相同的方案数。此时先求出[L,H]之间i的倍数的个数x,暂时令f[i]=xn−x。但此时得到的f[i]实际上是含有公约数i的方案数,不是最大公约数为i
xyz32768
·
2020-07-06 09:39
BZOJ
UOJ
LOJ
bzoj3930
[CQOI2015]选数(反演||容斥原理)
题目链接分析:自己YY的解法:gcd=kgcd=k,那么我们就可以把选出的数都分解成(k∗a0,k∗a1,...,k∗an)(k∗a0,k∗a1,...,k∗an)那么gcd(a0,a1,...,an)=1gcd(a0,a1,...,an)=1,其中一定能找到两个数满足gcd(ai,aj)=1gcd(ai,aj)=1,其余数字可以任意选择设[l∗k,r∗k][l∗k,r∗k]包含在[L,R][L,
Coco_T_
·
2020-07-06 07:37
反演
bzoj3930
CQOI2015 选数
题面:
bzoj3930
题意:从[L,H][L,H][L,H]选出nnn个数,使它们的最大公约数为kkk的方案数,对1e9+71e9+71e9+7取模。
wennitao
·
2020-07-06 06:12
数论
BZOJ3930
:[CQOI2015]选数——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=3930https://www.luogu.org/problemnew/show/P3172#sub我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案。小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究。然而
weixin_33860147
·
2020-07-05 23:39
BZOJ3930
[CQOI2015]选数 【容斥】
题目我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案。小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究。然而他很快发现工作量太大了,于是向你寻求帮助。你的任务很简单,小z会告诉你一个整数K,你需要回答他最大公约数刚好为K的选取方案有多少个。由于方案数较大,你只需要输出其除以1000000007的余数即
weixin_30753873
·
2020-07-05 21:54
(noip模拟十七)【
BZOJ3930
】[CQOI2015]选数-容斥水法
Description我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案。小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究。然而他很快发现工作量太大了,于是向你寻求帮助。你的任务很简单,小z会告诉你一个整数K,你需要回答他最大公约数刚好为K的选取方案有多少个。由于方案数较大,你只需要输出其除以10000
weixin_30700977
·
2020-07-05 21:18
【
BZOJ3930
】选数(莫比乌斯反演,杜教筛)
【
BZOJ3930
】选数(莫比乌斯反演,杜教筛)题面给定\(n,K,L,R\)问从\(L~R\)中选出\(n\)个数,使得他们\(gcd=K\)的方案数题解这样想,既然\(gcd=K\),首先就把区间缩小一下这样变成了
weixin_30666753
·
2020-07-05 21:16
[
bzoj3930
] [洛谷P3172] [CQOI2015] 选数
Description我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案。小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究。然而他很快发现工作量太大了,于是向你寻求帮助。你的任务很简单,小z会告诉你一个整数K,你需要回答他最大公约数刚好为K的选取方案有多少个。由于方案数较大,你只需要输出其除以10000
weixin_30421525
·
2020-07-05 20:23
【
BZOJ3930
】【CQOI2015】选数
【题目链接】点击打开链接【思路要点】显然问题可以转化为\(K=1\)的形式。那么,我们实际上要求\(\sum_{i_1,i_2,...,i_N=L}^{R}\epsilon(gcd(i_1,i_2,...,i_N))\)。\(=\sum_{i_1,i_2,...,i_N=L}^{R}\sum_{d/i_1,i_2,...,i_N}\mu(d)\)\(=\sum_{d=1}^{R}\mu(d)(\l
cz_xuyixuan
·
2020-07-05 07:51
【OJ】BZOJ
【类型】做题记录
【算法】莫比乌斯反演
【算法】数学
【算法】杜教筛
Bzoj3930
: [CQOI 2015] 选数 & COGS2699: [CQOI 2015] 选数加强版
题面BzojCOGS加强版Sol非加强版可以枚举AC这里不再讲述设f(i)表示在[L,H]取N个,gcd为i的方案数F(i)=∑i|df(d)表示[L,H]取N个,gcd为i的倍数的方案数易得F(i)=(⌊Hi⌋−⌊L−1i⌋)N直接莫比乌斯反演得到f(K)=∑K|dμ(dK)F(d)把dK替换掉f(K)=∑⌊HK⌋i=1μ(i)F(K∗i)分块F(K∗i)杜教筛出μ的前缀和就可以了#includ
Cyhlnj
·
2020-07-05 01:24
反演与容斥
狄利克雷卷积和杜教筛
bzoj3930
选数 递推
看了一下popoqqq爷的莫比乌斯反演,果断弃疗。还是写递推好,又短又快。令f[i]表示当数不全相等时(为什么如此,后面再说),最小公倍数为i*K的方案,那么:首先,当公倍数(注意不是最小)为i*K时,总方案数X^N-X,其中X表示L~R中i*K的倍数,再减去重复的方案:Σ(u=2,i*K*u#include#definelllonglong#definemod1000000007usingnam
lych_cys
·
2020-07-04 23:25
bzoj
bzoj3930
/洛谷P3172 选数
题目分析递推+容斥。我们注意到H-LH-L,那么就在H到L的区间里不可能找到两个及以上的数,它们的gcd=x。这样我们就可以大大缩小范围了!以下所有除法都是向下取整。。。我们用f[i]表示gcd为i∗k的数对的个数,首先我们可以缩小H和L,即同时除以k,令l=(H-1)/k,r=L/k,结果不变(为什么是(H-1)/k?因为我们只要用到H-1),那么在H到L范围内i∗k的倍数有r/i−l/i个,那
litble
·
2020-07-04 22:30
数学
「
BZOJ3930
」「CQOI2015」选数
Description我们知道,从区间[L,H][L,H](LL和HH为整数)中选取NN个整数,总共有(H−L+1)N(H−L+1)N种方案。小zz很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的NN个整数都求一次最大公约数,以便进一步研究。然而他很快发现工作量太大了,于是向你寻求帮助。你的任务很简单,小zz会告诉你一个整数KK,你需要回答他最大公约数刚好为KK的选取方案有多少个。由于
infinity_edge
·
2020-07-04 18:23
bzoj
洛谷
莫比乌斯反演
bzoj3930
: [CQOI2015]选数(Dp)
题目传送门。解法:跟这题思路蛮像的。就是作为公因数不一定作为最大公因数。那么求作为公因数的方案很简单。只需知道有多少个数是他的倍数。然后用个数^N就行了。f[i]表示最大公因数为i*K的方案。那么先算出公因数的方案。然后在减去f[i的倍数]就行了呀。代码实现:#include#include#include#include#include#include#includeusingnamespace
Hanks_o
·
2020-07-04 17:20
Dp
BZOJ
数论
BZOJ3930
【CQOI2015】选数
感觉水水的一道题。网上说什么mobius反演,但是感觉很麻烦,然后就感觉可以容斥乱搞,后来发现不用容斥。如果我们用f[i]表示gcd刚好为k*i的选数方案,那么f[1]就是答案,然后我们就fori=100000to1,从大往小算。对于每一个i,先算在这个区间里面有多少个k*i的倍数,然后N次方之。这就是gcd至少为k*i的方案数然后减去f[i*j]j=1,2,3….MAXJ。i*j到100000就
YJQQQAQ
·
2020-07-04 09:45
BZOJ除草记
bzoj3930
& 洛谷P3172 [CQOI2015]选数 狄利克雷卷积+杜教筛+快速幂
题目链接:
bzoj3930
洛谷P3172前置技能:快速幂(雾)杜教筛狄利克雷卷积(莫比乌斯反演)首先把答案表示出来:这里先把LLL和RRR都除以kkk,然后gcd=kgcd=kgcd=k就转化成gcd=
ILoveFujibayashiRyou
·
2020-07-04 08:31
bzoj题目
Luogu题目
[
bzoj3930
][CQOI2015]选数 莫比乌斯反演
传送门Description我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案。小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究。然而他很快发现工作量太大了,于是向你寻求帮助。你的任务很简单,小z会告诉你一个整数K,你需要回答他最大公约数刚好为K的选取方案有多少个。由于方案数较大,你只需要输出其除以10
XStalker
·
2020-07-04 06:28
莫比乌斯反演
bzoj3930
[CQOI2015]选数(容斥+递推+数论)
首先我们有:在[l,R]中选若干不完全相同的数,他们的gcdusingnamespacestd;#definelllonglong#defineinf0x3f3f3f3f#defineN100010#definemod1000000007inlinechargc(){staticcharbuf[1'9'){if(ch=='-')f=-1;ch=gc();}while(ch>='0'&&ch>=1,
Icefox_zhx
·
2020-07-04 06:37
bzoj
容斥原理
gcd
递推
bzoj3930
: [CQOI2015]选数(Dp)
题目传送门。解法:跟这题思路蛮像的。就是作为公因数不一定作为最大公因数。那么求作为公因数的方案很简单。只需知道有多少个数是他的倍数。然后用个数^N就行了。f[i]表示最大公因数为i*K的方案。那么先算出公因数的方案。然后在减去f[i的倍数]就行了呀。代码实现:#include#include#include#include#include#include#includeusingnamespace
Hanks_o
·
2020-07-04 05:04
Dp
BZOJ
数论
BZOJ 3930 [CQOI2015]选数 分块+前缀和+玄
BZOJ3930
[CQOI2015]选数Solution题目要求:∑a1=LR∑a2=LR⋯∑aN=LR[gcd(a1,a2,⋯,aN)=K]∑a1=LR∑a2=LR⋯∑aN=LR[gcd(a1,a2,
Chlience
·
2020-07-04 05:48
【数学】
【数学】莫比乌斯反演
【
bzoj3930
】[CQOI2015]选数 莫比乌斯反演+杜教筛
题目描述我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案。小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究。然而他很快发现工作量太大了,于是向你寻求帮助。你的任务很简单,小z会告诉你一个整数K,你需要回答他最大公约数刚好为K的选取方案有多少个。由于方案数较大,你只需要输出其除以1000000007的余
weixin_30896511
·
2020-07-04 02:57
[BZOJ 3930] [CQOI 2015]选数(莫比乌斯反演+杜教筛)
[
BZOJ3930
][CQOI2015]选数(莫比乌斯反演+杜教筛)题面我们知道,从区间\([L,R]\)(L和R为整数)中选取N个整数,总共有\((R-L+1)^N\)种方案。
weixin_30551963
·
2020-07-04 02:02
[CQOI2015]选数(
bzoj3930
莫比乌斯反演+杜教筛+累加有上下界)
题目:[CQOI2015]选数题意:思路:若L%k==0,那么累加的下界为,若L%k!=0,那么累加的下界为,综合一下,下界为。我们设下界=t。原式=设设则(莫比乌斯反演)把a除掉后,上届为,下界为=。因此,。因此,可以对g(d)进行数论分块,通过杜教筛求莫比乌斯函数的前缀和。code:#includeusingnamespacestd;typedeflonglongll;constintMAX=
luyehao1
·
2020-07-04 00:06
ACM-数论
bzoj3930
Description我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案。小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究。然而他很快发现工作量太大了,于是向你寻求帮助。你的任务很简单,小z会告诉你一个整数K,你需要回答他最大公约数刚好为K的选取方案有多少个。由于方案数较大,你只需要输出其除以10000
lpf_as_an_oier
·
2020-07-04 00:23
数论少许知识
bzoj3930
[CQOI2015]选数
Description我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案。小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究。然而他很快发现工作量太大了,于是向你寻求帮助。你的任务很简单,小z会告诉你一个整数K,你需要回答他最大公约数刚好为K的选取方案有多少个。由于方案数较大,你只需要输出其除以10000
olahiuj
·
2020-07-04 00:43
c++
莫比乌斯反演
杜教筛
洛谷3172
BZOJ3930
CQOI2015 选数 莫比乌斯反演 杜教筛
题目链接题意:给你n,k,l,rn,k,l,rn,k,l,r,让你从[l,r][l,r][l,r]选一个数,选nnn次,总方案数是(r−l+1)n(r-l+1)^n(r−l+1)n,问选出的nnn个数的gcd恰好是kkk的方案数。n,k,l,r<=1e9,r−l<=1e5n,k,l,r<=1e9,r-l<=1e5n,k,l,rusingnamespacestd;constl
forever_shi
·
2020-07-04 00:35
莫比乌斯反演
杜教筛
数学
数论
【
bzoj3930
】[CQOI2015]选数 【莫比乌斯反演】【杜教筛】
题目传送门题意:求从区间[L,H][L,H](LL和HH为整数)中选取NN个整数,使它们的gcdgcd为KK的方案总数模10000000071000000007的值。题解:我们令l=⌊L−1K⌋l=⌊L−1K⌋,r=⌊HK⌋r=⌊HK⌋。则原问题等价于求从区间[l,r][l,r]中选取NN个整数,使它们的gcdgcd为11的方案总数模10000000071000000007的值。我们令F(i)F(
ez_2016gdgzoi471
·
2020-07-04 00:48
莫比乌斯反演
杜教筛
【
BZOJ3930
】【CQOI2015】选数(递推 & 莫比乌斯反演)
Description我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H−L+1)N种方案。小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究。然而他很快发现工作量太大了,于是向你寻求帮助。你的任务很简单,小z会告诉你一个整数K,你需要回答他最大公约数刚好为K的选取方案有多少个。由于方案数较大,你只需要输出其除以100000
Hany01
·
2018-01-18 22:19
莫比乌斯反演
BZOJ
数论
省选
[
BZOJ3930
][CQOI2015]选数(莫比乌斯反演+杜教筛)
题目描述传送门题解我tm从头到尾竟然都记了一个错误的反演公式…令f(n)表示选出gcd为n的有多少种方案令F(n)表示选出gcd为n的倍数的有多少种方案也就是F(n)=∑n|df(d)那么利用反演公式可以得到f(n)=∑n|dμ(dn)F(d)现在就是要求f(k)=∑k|dμ(dk)F(d)首先考虑F(d)如何求,很显然若[l..r]范围内d的倍数的个数为x的话,答案应该为xn那么F(d)不就是(
Clove_unique
·
2017-03-28 11:58
题解
省选
莫比乌斯反演
[
BZOJ3930
][CQOI2015]选数(莫比乌斯反演+杜教筛)
题目描述传送门题解我tm从头到尾竟然都记了一个错误的反演公式…令f(n)表示选出gcd为n的有多少种方案令F(n)表示选出gcd为n的倍数的有多少种方案也就是F(n)=∑n|df(d)那么利用反演公式可以得到f(n)=∑n|dμ(dn)F(d)现在就是要求f(k)=∑k|dμ(dk)F(d)首先考虑F(d)如何求,很显然若[l..r]范围内d的倍数的个数为x的话,答案应该为xn那么F(d)不就是(
Clove_unique
·
2017-03-28 11:58
题解
省选
莫比乌斯反演
BZOJ3930
: [CQOI2015]选数
差不多是条咸鱼了…………一开始对着题目yy了一个貌似很正确,复杂度不会算的搜索,想了想不是很敢打,往DP想,然后想出了一个看起来很正确的DP,然后挂了….那想容斥咯………..不会………那试试反演咯…………..还是不会………那我到底会什么…………..看题解好像还是会的这题做法好多的样子,主要是两类,一类是反演,OrzPoPoQQQμ的前缀和处理窝看不懂…………还有一类是容斥,因为区间里选n个不是全部
L_0_Forever_LF
·
2016-11-04 08:25
BZOJ
数论
容斥原理
bzoj3930
【CQOI2015】选数
3930:[CQOI2015]选数TimeLimit: 10Sec MemoryLimit: 512MBSubmit: 742 Solved: 376[Submit][Status][Discuss]Description 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案。小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最
AaronGZK
·
2016-04-09 22:00
递推
容斥原理
bzoj
【
bzoj3930
】[CQOI2015]选数 莫比乌斯反演
首先问题是从l~r中选n个数,最大公约数为k的方案数再转化一下,l/k~r/k中选n个数,最大公约数为1的方案数n=2时很容易,我们看一下n=3的情况那么,其实选n个数也是同理分块,枚举r/kd和l-1/kd的取值,然后快速幂计算就可以了,问题在于如何处理出μ函数的前缀和?还是参考PoPoQQQ大爷的吧:http://blog.csdn.net/popoqqq/article/details/44
qingdaobaibai
·
2016-03-31 14:13
动态规划
数论
【
bzoj3930
】[CQOI2015]选数 莫比乌斯反演
首先问题是从l~r中选n个数,最大公约数为k的方案数再转化一下,l/k~r/k中选n个数,最大公约数为1的方案数n=2时很容易,我们看一下n=3的情况那么,其实选n个数也是同理分块,枚举r/kd和l-1/kd的取值,然后快速幂计算就可以了,问题在于如何处理出μ函数的前缀和?还是参考PoPoQQQ大爷的吧:http://blog.csdn.net/popoqqq/article/details/44
u012288458
·
2016-03-31 14:00
【
bzoj3930
】选数 递推
看了一下popoqqq爷的莫比乌斯反演,果断弃疗。还是写递推好,又短又快。 令f[i]表示当数不全相等时(为什么如此,后面再说),最小公倍数为i*K的方案,那么: 首先,当公倍数(注意不是最小)为i*K时,总方案数X^N-X,其中X表示L~R中i*K的倍数,再减去重复的方案:Σ(u=2,i*K*u #include #definelllonglong #def
lych_cys
·
2016-02-03 20:00
快速幂
递推
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他