题意:略. 思路:网上是用卷积或者做的,不太会. 因为上一题莫比乌斯有个类似的部分,所以想到了每个素因子单独考虑. 我们用C(x^p)表示p次减少分布在K次减少里的方案数,由隔板法可知,C(x^p)=C(K+p-1,K-1);  而且满足C(x)有积性,即gcd(x,y)==1时,有C(x*y)=C(x)*C(y); 所以C数组可以线性筛. 把筛素数的线性筛,稍微改一下即可,low[i]代表的是i的最小素数因子x的p次方,即x^p|i,p最大,num[i]代表的是幂次p. 那么g(x)=Σ f(…
HDU 5628 Clarke and math 本文属于一个总结了一堆做法的玩意...... 题目 简单的一个式子:给定$n,k,f(i)$,求 然后数据范围不重要,重要的是如何优化这个做法. 这个式子有$n$种问法,而且可以变式扩展,所以说这个式子也是比较重要的: 我们约定如果给定了$n,k$那么我们的$g$写作$g_k(n)$,如果给定了$n,k$中间的任意一个,枚举另一个,或者另一个是变化的,那么另一个数记为$i,j$ 把$1~n$或$1~k$的$g_k(i)$或$g_i(n)$都求出来…
Clarke and math 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5628 Description Clarke is a patient with multiple personality disorder. One day, he turned into a mathematician, did a research on interesting things. Suddenly he found a interesting fo…
题意:bc round 72 中文题面 分析(官方题解): 如果学过Dirichlet卷积的话知道这玩意就是g(n)=(f*1^k)(n), 由于有结合律,所以我们快速幂一下1^k就行了. 当然,强行正面刚和式也是能搞的(反正我不会). 一次Dirichlet卷积复杂度是O(nlogn)的,所以总时间复杂度为O(nlognlogk). 注:普及Dirichlet卷积概念,设f,g为两个数论函数, 那么规定 (f∗g)=∑d|nf(d)g(n/d)为f,g的Dirichlet卷积 Dirichle…
\(Description\) \[g(i)=\sum_{i_1|i}\sum_{i_2|i_1}\sum_{i_3|i_2}\cdots\sum_{i_k|i_{k-1}}f(i_k)\ mod\ 1000000007\] 给出\(n,k,f[1\sim n]\),求\(g[1\sim n]\). \(Solution\) 首先狄利克雷卷积(Dirichlet Product):设\(f(n),g(n)\)是两个数论函数,它们的Dirichlet乘积也是一个数论函数, \[h(n)=\sum_…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3309 像这种数据范围,一般是线性预处理,每个询问 sqrt (数论分块)做. 先反演一番.然后 f( ) 还不能一个就花 log 的时间,所以要分析性质. 设 n 一共 m 个质因数,其中最大的指数是 t . 已有 Σ(d|n) f(d)*u(n/d) ,如果 u( ) 的部分含有指数>=2的质因子,就无贡献:所以 u( ) 里每种质因数选1个或0个,一共 2^m 种. 如果 n 里有一个…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5648 题意:给定n,m(1<= n,m <= 15,000),求Σgcd(i|j,i&j);(1 <= i <= n,1<=j<=m); 至多三组数据,至多两组数据max(n,m) > 2000.至多一组数据max(n,m) > 8000; 很多题解是用递推打表,将数据压缩250倍,即[i][j]:代表[1...250*i][1...250*j],之后零…
给定n个正整数a1,a2,…,an,求 的值(答案模10^9+7). Input 第一行一个正整数n. 接下来n行,每行一个正整数,分别为a1,a2,…,an. Output 仅一行答案. Sample Input 3 6 10 15 Sample Output 1595 Hint 1<=n<=10^5,1<=ai<=10^7.共3组数据. 题目大意 (题目过于简洁,完全不需要大意) 题目虽然很简洁,但是处处挖着坑等你跳. 原计划两个小时把今天讲的例题A完,实际上两个小时都被这道题…
题解 代码 #include <bits/stdc++.h> using namespace std; typedef long long ll; const ll mod = 1LL<<30; const int N = 10000000; int prime[N+5], low[N+5], check[N+5], pow_cnt[N+5], tot, f[N+5], f2[N+5], f3[N+5]; void sieve() { memset(check, 0, sizeof…
题目: BZOJ 3309 分析: 首先,经过一番非常套路的莫比乌斯反演(实在懒得写了),我们得到: \[\sum_{T=1}^n \sum_{d|T}f(d)\mu(\frac{T}{d})\lfloor\frac{n}{T}\rfloor\lfloor\frac{m}{T}\rfloor\] 那么,我们现在如果预处理出 \(g(n)=\sum_{d|n}f(d)\mu(\frac{n}{d})\) 的前缀和,就可以数论分块 \(O(\sqrt{n})\) 处理每次询问了. \(\mu\) 函…