BZOJ 3930: [CQOI2015]选数 递推
3930: [CQOI2015]选数
Time Limit: 20 Sec
Memory Limit: 256 MB
题目连接
http://www.lydsy.com/JudgeOnline/problem.php?id=3930
Description
Input
Output
输出一个整数,为所求方案数。
Sample Input
2 2 2 4
Sample Output
3
HINT
题意
题解:
记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
转自:http://blog.csdn.net/shiyukun1998/article/details/44922391
讲的很清楚
代码:
//qscqesze
#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <queue>
#include <typeinfo>
#include <fstream>
#include <map>
#include <stack>
typedef long long ll;
using namespace std;
//freopen("D.in","r",stdin);
//freopen("D.out","w",stdout);
#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)
#define test freopen("test.txt","r",stdin)
#define maxn 100001
#define mod 1000000007
#define eps 1e-9
int Num;
char CH[];
const int inf=0x3f3f3f3f;
const ll infll = 0x3f3f3f3f3f3f3f3fLL;
inline ll read()
{
ll x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
inline void P(int x)
{
Num=;if(!x){putchar('');puts("");return;}
while(x>)CH[++Num]=x%,x/=;
while(Num)putchar(CH[Num--]+);
puts("");
}
//**************************************************************************************
int pow_mod(int x, int k)
{
int ans=;
while(k) {
if(k & ) ans = 1LL * ans * x % mod;
x = 1LL * x * x % mod;
k >>= ;
}
return ans;
}
int ans[maxn];
int main()
{
//test;
int n,k,a,b;
n=read(),k=read(),a=read(),b=read();
int l=a/k,r=b/k;
if(a%k)l++;
for(int i=maxn-;i>=;i--)
{
int L=l/i,R=r/i;
if(l%i)L++;
if(l<=r)
{
ans[i]=pow_mod(R-L+,n);
ans[i]=(ans[i]-(R-L+)+mod)%mod;
for(int j=i*;j<maxn;j+=i)
ans[i]=(ans[i]-ans[j]+mod)%mod;
}
}
if(l==)
ans[]=(ans[]+)%mod;
P(ans[]);
}
BZOJ 3930: [CQOI2015]选数 递推的更多相关文章
- 3930: [CQOI2015]选数|递推|数论
题目让求从区间[L,H]中可反复的选出n个数使其gcd=k的方案数 转化一下也就是从区间[⌈Lk⌉,⌊Hk⌋]中可反复的选出n个数使其gcd=1的方案数 然后f[i]表示gcd=i的方案数.考虑去掉全 ...
- 【递推】BZOJ 3930: [CQOI2015]选数
Description 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公 ...
- bzoj 3930: [CQOI2015]选数【递推】
妙啊 这个题一上来就想的是莫比乌斯反演: \[ f(d)=\sum_{k=1}^{\left \lceil \frac{r}{d} \right \rceil}\mu(k)(\left \lceil ...
- 【刷题】BZOJ 3930 [CQOI2015]选数
Description 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公 ...
- bzoj 3930: [CQOI2015]选数
Description 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公 ...
- BZOJ 3930: [CQOI2015]选数 莫比乌斯反演
https://www.lydsy.com/JudgeOnline/problem.php?id=3930 https://blog.csdn.net/ws_yzy/article/details/5 ...
- bzoj 3930: [CQOI2015]选数【快速幂+容斥】
参考:https://www.cnblogs.com/iwtwiioi/p/4986316.html 注意区间长度为1e5级别. 则假设n个数不全相同,那么他们的gcd小于最大数-最小数,证明:则gc ...
- BZOJ 3930: [CQOI2015]选数 莫比乌斯反演 + 杜教筛
求 $\sum_{i=L}^{R}\sum_{i'=L}^{R}....[gcd_{i=1}^{n}(i)==k]$ $\Rightarrow \sum_{i=\frac{L}{k}}^{\fra ...
- 【BZOJ】3930: [CQOI2015]选数
题意 从区间\([L, R]\)选\(N\)个数(可以重复),问这\(N\)个数的最大公约数是\(K\)的方案数.(\(1 \le N, K \le 10^9, 1 \le L \le R \le 1 ...
随机推荐
- 【LeetCode 235】Lowest Common Ancestor of a Binary Search Tree
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BS ...
- As3 常用日期工具
package com.lj.utils { import mx.controls.DateField; import mx.controls.dataGridClasses.DataGridColu ...
- 【转】linux mknod命令解析
转自:http://www.cnblogs.com/cobbliu/archive/2011/07/05/2389014.html 个人觉得linux的软件设计思想异常强大,比如把所有的设备都当做文件 ...
- 创建优雅表格的8个js工具
当需要呈现数百个表的数据时,展示和可访问性扮演着至关重要的角色.在这种情况下,倘若一个数据网格能够支持大量数据集的HTML Table并提供诸如排序.搜索.过滤和分页等功能,那是棒棒哒.在这篇文章中, ...
- 【LeetCode】38 - Count and Say
The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...
- JavaEE5 Tutorial_Jsp,EL
Jsp的各种元素在转化为servlet时处理是不一样的:指令,控制web容器如何处理页面脚本,被插入到生成的servlet里EL表达式,作为参数传递到解析器get/set Property,变成方 ...
- Hbase学习记录(1)|伪分布式安装
概述 Hbase –Haddop Database 是一个高性能,高可靠性.面向列.可伸缩的分布式存储系统. Hbase利用HDFS作为文件存储系统,利用MapReduce来处理Hbase的海量数据, ...
- 自定义延时查询控件---valen
当查询已经成标配 查询是已成为每个应用常用的功能,也正是这样前端后对查询的设计需求也日益增加,本文针对前端(Android端)查询控件做一个例子: 控件设计与逻辑 产品的设计UI图; 要达到如下 1| ...
- T-SQL游标
游标是面向行的,它会使开发人员变懒,懒得去想用面向集合的查询方式实现某些功能. 在性能上,游标会迟更多的内存,减少可用的并发,占用带宽,锁定资源,当然还有更多的代码量. 用一个比喻来说明为什么游标会占 ...
- 第三百三十七天 how can I 坚持
看了两集<太阳的后裔>,你眼中的你自己,真实的你自己,他眼中的你,你眼中的他,他眼中的他自己,真实的他自己.好乱. 何须让别人懂你,何须让自己懂自己,将就着一天天过吧. 睡觉.