BZOJ 3930 容斥原理

思路:

移至iwtwiioi    http://www.cnblogs.com/iwtwiioi/p/4986316.html

//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define int long long
const int mod=1000000007;
int n,k,l,h,f[100050];
int pow(int x,int y){
    int res=1;
    while(y){
        if(y&1)res=res*x%mod;
        x=x*x%mod,y>>=1;
    }return res;
}
signed main(){
    scanf("%lld%lld%lld%lld",&n,&k,&l,&h);
    for(int i=h-l;i;i--){
        int L=(l-1)/(k*i),R=h/(k*i);
        f[i]+=(pow(R-L,n)-R+L+mod)%mod;
        for(int j=2;i*j<=h-l;j++)(f[i]-=f[i*j])%=mod;
        f[i]=(f[i]+mod)%mod;
    }printf("%lld\n",(f[1]+(k>=l&&k<=h))%mod);
}
时间: 2024-10-10 00:48:51

BZOJ 3930 容斥原理的相关文章

BZOJ 3930: [CQOI2015]选数

3930: [CQOI2015]选数 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1130  Solved: 532[Submit][Status][Discuss] Description 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究.然而他很快发现工作量太大了,于是向你寻求帮助.你的任务很简

BZOJ 3930: [CQOI2015]选数 递推

3930: [CQOI2015]选数 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=3930 Description 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究.然而他很快发现工作量太大了,于是向你寻求帮助

BZOJ 3930 【CQOI2015】 选数

题目链接:选数 MDZZ,这种SB题我都Wa了这么多发,彻底没救系列- 首先,我们可以发现1,如果我们选了两个不同的数,那么它们的\(\gcd\)不会超过\(r-l+1\).于是,我们可以设一个\(f_i\)表示任取\(n\)个数,它们的\(\gcd\)为\(ik\)的方案数,最后我们要的答案就是\(f_1\).我们考虑容斥一下,在求\(f_i\)的时候,先把\([l,r]\)中是\(ik\)倍数的数全部拿出来,然后任意选\(n\)个,这样选出来的数他们的\(\gcd\)一定是\(ik\)的倍数

BZOJ 3930 选数

莫比乌斯反演+杜教筛. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<map> #define maxn 10000000 #define mod 1000000007 #define inf 0x7f7f7f7f7f7f7f7fLL using namespace std; long long n,k,l,r,miu[maxn

【递推】BZOJ 3930: [CQOI2015]选数

Description 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究.然而他很快发现工作量太大了,于是向你寻求帮助.你的任务很简单,小z会告诉你一个整数K,你需要回答他最大公约数刚好为K的选取方案有多少个.由于方案数较大,你只需要输出其除以1000000007的余数即可. Input 输入一行,包含4个空格分开的正整数,依次为N,K,L和H. O

BZOJ 3930 CQOI2015 选数 莫比乌斯反演

题目见 http://pan.baidu.com/s/1o6zajc2 此外不知道H-L<=10^5这个条件是干嘛的.... #include <map> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define M 10001000 #define INF 0x3f3f3f3f #define MOD 1000000007 u

【刷题】BZOJ 3930 [CQOI2015]选数

Description 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究.然而他很快发现工作量太大了,于是向你寻求帮助.你的任务很简单,小z会告诉你一个整数K,你需要回答他最大公约数刚好为K的选取方案有多少个.由于方案数较大,你只需要输出其除以1000000007的余数即可. Input 输入一行,包含4个空格分开的正整数,依次为N,K,L和H. O

数论与数学专题练习(一)(201802~201805)

手动博客搬家: 本文发表于20180224 00:33:28, 原地址https://blog.csdn.net/suncongbo/article/details/79357927 上次打cf的时候一道水水的数论题(强推式子)都没有做出来,于是决定开始数论专题练习. 以后将不断进行update. 刷题记录 UPD1. T1. (20180214) AC codeforces 933B http://codeforces.com/problemset/problem/933/B 题解: 略 UP

BZOJ 3622(已经没有什么好害怕的了-Dp+容斥原理)

3622: 已经没有什么好害怕的了 Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 7  Solved: 6 [Submit][Status] Description Input Output Sample Input 4 2 5 35 15 45 40 20 10 30 Sample Output 4 HINT Source 2014湖北省队互测week2 PS:本题的数据中能量互不相同. 1.我们计算出糖果>药片的组数=k 2.我们计算出f[