Unusual Sequences】的更多相关文章

题目链接:900D  Unusual Sequences 题意: 给出两个数N,M.让你求数列(和为M,gcd为N)的个数. 题解: 首先,比较容易发现的是M%N如果不为零,那么一定不能构成这样的序列.那么可以设 k = M/N,则可以想象为用k个1来构成序列的个数,运用隔板原理可以求出k个1可以构成的序列总数为2^(k-1),但是这里面其实有不构成条件的(gcd>N)比方说6个相同的数(2,2,2)构成这样gcd就是2×N而不是N了.所以要减去这些数的情况,这样减的话发现不能用递归来做,要先记…
[CF900D]Unusual Sequences 题意:定义正整数序列$a_1,a_2...a_n$是合法的,当且仅当$gcd(a_1,a_2...a_n)=x$且$a_1+a_2+...+a_n=y$.给定x,y,求合法的序列总数. x,y<=10^9. 题解:不难想到容斥,先不管gcd的限制,那么总方案数就是$2^{y-1}$.你可以理解为有y个1,除了第一个1,其余的要么加到上一个数中去,要么自己变成一个新数. 如果考虑gcd的限制呢?容斥一发即可.并且容斥系数就是我们常用的莫比乌斯函数…
Count the number of distinct sequences a1, a2, ..., an (1 ≤ ai) consisting of positive integers such that gcd(a1, a2, ..., an) = x and . As this number could be large, print the answer modulo 109 + 7. gcd here means the greatest common divisor. Input…
题目链接: https://codeforces.com/contest/900/problem/D 题意 假设有distinct 正整数序列{a1,a2,,,an},满足gcd(a1, a2, ..., an) = x ,且 ∑ai = y,那么求满足条件的序列的数目. 老题,一直没AC,今天算是明白了. #include <bits/stdc++.h> using namespace std; typedef long long ll; ; ll qPow(ll a,ll b,ll m)…
题意 题目链接 Sol 首先若y % x不为0则答案为0 否则,问题可以转化为,有多少个数列满足和为y/x,且整个序列的gcd=1 考虑容斥,设\(g[i]\)表示满足和为\(i\)的序列的方案数,显然\(g[i] = 2^{i-1}\)(插板后每空位放不放) 同时还可以枚举一下gcd,设\(f[i]\)表示满足和为\(i\)且所有数的gcd为1的方案,\(g[i] = \sum_{d | i} f[\frac{n}{d}]\) 反演一下,\(f[i] = \sum_{d | i} \mu(d)…
题目链接:http://codeforces.com/problemset/problem/900/D 题意: 给定x,y,问你有多少个数列a满足gcd(a[i]) = x 且 ∑(a[i]) = y. 题解: 由于gcd(a[i]) = x,所以y一定是x的倍数,否则无解. 那么原题就等价于:问你有多少个数列a满足gcd(a[i]) = 1 且 ∑(a[i]) = y/x. 设f(k)为gcd(a[i]) = 1 且 ∑(a[i]) = k时的答案. 只满足条件∑(a[i]) = k的数列共有…
题意: 求解合为 y 的总体 gcd 为 x 的正整数非空序列个数. 解法: 特判一下后,原问题等价于合为 s = y/x 的整体gcd为1的正整数序列个数. 1.$ans = \sum_{\sum{x_i} = s}{ [(x_1,...,x_n) = 1] } = \sum_{d|s}{\mu(s/d) \sum{[x_1+x_2+...+x_n = d]}} = \sum_{d|s}{\mu(s/d) 2^{d-1}}$ 2.记$f(m) = \sum_{\sum{x_i} = m}{ […
题目链接: http://codeforces.com/contest/900/problem/D 题意: 给你 \(x\) 和 \(y\),让你求同时满足这两个条件的序列的个数: \(a_1, a_2, ..., a_n (1 ≤ a_i)\). $ 1.$ $gcd(a_1, a_2, ..., a_n) = x $ $ 2.$ \(\sum_{i=1}^{n}a_i = y\) 题解: 可以发现,当\(y\%x!=0\)时,满足条件的序列不存在.让\(f(t)\)表示满足序列和为的 \(t…
题目链接 \(Description\) 给定\(x,y\),求有多少个数列满足\(gcd(a_i)=x且\sum a_i=y\).答案对\(10^9+7\)取模. \(1≤x,y≤10^9\) \(Solution\) \(y\)如果不是\(x\)的倍数,答案为\(0\) 然后呢 令\(y/=x\),问题就变成了求有多少个数列满足\(gcd(a_i)=1且\sum ai=y'\) 如果没有\(gcd\)为\(1\)的限制? 隔板法可得\(ans=\sum_{i=0}^{y-1}C_{y-1}^…
题目 智力下降严重 显然要反演了呀 首先必须满足\(x|y\),否则答案是\(0\) 我们枚举这个数列的\(gcd\)是\(d\)或者\(d\)的倍数 于是答案就是 \[\sum_{x|d}[d|y]\mu(\frac{x}{d})g(\frac{y}{d})\] \(g(d)\)表示和为\(d\)的正整数数列的数量,显然就是插一下板,于是\(g(d)=\sum_{i=1}^d\binom{d-1}{i-1}=2^{d-1}\) 代码 #include<bits/stdc++.h> #defi…