【BZOJ 4305】 4305: 数列的GCD (数论)
4305: 数列的GCD
Description
给出一个长度为N的数列{a[n]},1<=a[i]<=M(1<=i<=N)。现在问题是,对于1到M的每个整数d,有多少个不同的数列b[1], b[2], ..., b[N],满足:(1)1<=b[i]<=M(1<=i<=N);(2)gcd(b[1], b[2], ..., b[N])=d;(3)恰好有K个位置i使得a[i]<>b[i](1<=i<=N)注:gcd(x1,x2,...,xn)为x1, x2, ..., xn的最大公约数。输出答案对1,000,000,007取模的值。Input
第一行包含3个整数,N,M,K。第二行包含N个整数:a[1], a[2], ..., a[N]。Output
输出M个整数到一行,第i个整数为当d=i时满足条件的不同数列{b[n]}的数目mod 1,000,000,007的值。Sample Input
3 3 3
3 3 3Sample Output
7 1 0HINT
当d=1,{b[n]}可以为:(1, 1, 1), (1, 1, 2), (1, 2, 1), (1, 2, 2), (2, 1, 1), (2, 1, 2), (2, 2, 1)。当d=2,{b[n]}可以为:(2, 2, 2)。当d=3,因为{b[n]}必须要有k个数与{a[n]}不同,所以{b[n]}不能为(3, 3, 3),满足条件的一个都没有。对于100%的数据,1<=N,M<=300000, 1<=K<=N, 1<=a[i]<=M。Source

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define Mod 1000000007
#define Maxn 300010
#define LL long long int a[Maxn];
LL p[Maxn],ans[Maxn]; LL qpow(LL a,int b)
{
LL ans=;
while(b)
{
if(b&) ans=(ans*a)%Mod;
a=(a*a)%Mod;
b>>=;
}
return ans;
} LL get_c(int m,int n)
{
LL as=p[n];
as=as*qpow(p[m],Mod-)%Mod;
as=as*qpow(p[n-m],Mod-)%Mod;
return as;
} int cnt[Maxn],cc[Maxn]; int main()
{
int n,m,k;
scanf("%d%d%d",&n,&m,&k);
k=n-k;
memset(cnt,,sizeof(cnt));
memset(cc,,sizeof(cc));
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
cc[a[i]]++;
}
for(int i=m;i>=;i--)
{
for(int j=i;j<=m;j+=i) cnt[i]+=cc[j];
}
p[]=;
for(LL i=;i<=n;i++) p[i]=(p[i-]*i)%Mod;
for(int i=m;i>=;i--)
{
if(cnt[i]<k) ans[i]=;
else
{
ans[i]=get_c(k,cnt[i])*qpow(m/i-,cnt[i]-k)%Mod*qpow(m/i,n-cnt[i])%Mod;
for(int j=;j<=m/i;j++) ans[i]=(ans[i]+Mod-ans[i*j])%Mod;
}
}
for(int i=;i<m;i++) printf("%lld ",ans[i]);
printf("%lld\n",ans[m]);
// printf("\n");
return ;
}
2017-03-14 22:14:32
【BZOJ 4305】 4305: 数列的GCD (数论)的更多相关文章
- BZOJ 4305: 数列的GCD( 数论 )
对于d, 记{ai}中是d的倍数的数的个数为c, 那么有: 直接计算即可,复杂度O(NlogN+MlogM) --------------------------------------------- ...
- bzoj 4305 数列的GCD
LINK:数列的GCD 题意: 给出一个长度为N的数列{a[n]},1<=a[i]<=M(1<=i<=N). 现在问题是,对于1到M的每个整数d,有多少个不同的数列b[1], ...
- Bash and a Tough Math Puzzle CodeForces 914D 线段树+gcd数论
Bash and a Tough Math Puzzle CodeForces 914D 线段树+gcd数论 题意 给你一段数,然后小明去猜某一区间内的gcd,这里不一定是准确值,如果在这个区间内改变 ...
- bzoj 2818 GCD 数论 欧拉函数
bzoj[2818]Gcd Description 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. Input 一个整数N Output 如题 Samp ...
- [bzoj]2705: [SDOI2012]Longge的问题[数论][数学][欧拉函数][gcd]
[bzoj]P2705 OR [luogu]P2303 Longge的问题 Description Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需 ...
- BZOJ 2820: YY的GCD | 数论
题目: 题解: http://hzwer.com/6142.html #include<cstdio> #include<algorithm> #define N 100000 ...
- 【BZOJ】2820: YY的GCD(莫比乌斯)
http://www.lydsy.com/JudgeOnline/problem.php?id=2820 此题非常神! 下文中均默认n<m 首先根据bzoj1101的推理,我们易得对于一个数d使 ...
- 【BZOJ】【2818】Gcd
欧拉函数/莫比乌斯函数 嗯……跟2190很像的一道题,在上道题的基础上我们很容易就想到先求出gcd(x,y)==1的组,然后再让x*=prime[i],y*=prime[i]这样它们的最大公约数就是p ...
- 【BZOJ 2820】 YY的GCD (莫比乌斯+分块)
YY的GCD Description 神犇YY虐完数论后给傻×kAc出了一题 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少 ...
随机推荐
- Centos tomcat jmx 远程连接
jmx配置: -Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.mana ...
- 微信小程序开发(四)线程架构和开发步骤
线程架构 从前面的章节我们可以知道,.js文件是页面逻辑处理层.我们可以按需在app.js和page.js中添加程序在生命周期的每个阶段相应的事件.如在页面的onLoad时进行数据的下载,onShow ...
- 用sqoop将mysql的数据导入到hive表中
1:先将mysql一张表的数据用sqoop导入到hdfs中 准备一张表 需求 将 bbs_product 表中的前100条数据导 导出来 只要id brand_id和 name 这3个字段 数据存 ...
- 原 jQuery中document的ready和load事件的区别?
概述: 大家在工作中用jQuery的时候一定会在使用之前这样: 1 2 3 4 5 6 7 8 //document ready $(document).ready(function(){ ...
- 【swupdate文档 三】SWUpdate: 嵌入式系统的软件升级
SWUpdate: 嵌入式系统的软件升级 概述 本项目被认为有助于从存储媒体或网络更新嵌入式系统.但是,它应该主要作为一个框架来考虑,在这个框架中可以方便地向应用程序添加更多的协议或安装程序(在SWU ...
- ACM ICPC Kharagpur Regional 2017
ACM ICPC Kharagpur Regional 2017 A - Science Fair 题目描述:给定一个有\(n\)个点,\(m\)条无向边的图,其中某两个点记为\(S, T\),另外标 ...
- linux动态库编译和使用详细剖析 - 后续
引言 - 也许是修行 很久以前写过关于动态库科普文章, 废话反正是说了好多. 核心就是在 linux 上面玩了一下 dlopen : ) linux动态库编译和使用详细剖析 - https://www ...
- 设计模式之笔记--命令模式(Command)
命令模式(Command) 定义 命令模式(Command),将一个请求封闭为一个对象,从而使你可以用不同的请求对客户进行参数化:对请求排除或记录请求日志,以及支持可撤销的操作. 类图 描述 Comm ...
- Linux文件访问流程及磁盘inode和block总结
Linux文件访问流程 inode是文件的唯一标识,文件名和inode的对应关系存放在上一级目录的block中:inode里有指向文件block的指针和文件的属性,从而通过block获得文件数据. 磁 ...
- AGC 16 D - XOR Replace
AGC 16 D - XOR Replace 附上attack(自为风月马前卒爷) 的题解 Problem Statement There is a sequence of length N: a=( ...