BZOJ3560 DZY Loves Math V(欧拉函数)】的更多相关文章

https://www.cnblogs.com/zwfymqz/p/9332753.html 由于欧拉函数是积性函数,可以用乘法分配律变成对每个质因子分开算最后乘起来.再由欧拉函数公式和分配律发现就是等比数列求和问题,特判下1的问题就好了. #include<cstdio> #include<algorithm> #define rep(i,l,r) for (int i=(l); i<=(r); i++) typedef long long ll; using namesp…
题目描述 给定n个正整数a1,a2,…,an,求 的值(答案模10^9+7). 输入 第一行一个正整数n. 接下来n行,每行一个正整数,分别为a1,a2,…,an. 输出 仅一行答案. 样例输入 3 6 10 15 样例输出 1595 题解 欧拉函数 由于 $\varphi$ 是积性函数,所以可以单独考虑每个质因子的贡献. 那么对于最终的 $a=i_1i_2\dots i_n$ ,若其包含 $p^c\ ,\ c>0$ ,则贡献为 $\frac{p-1}{p}·p^c$ .因此求出 $p^c$ 的…
因为欧拉函数是非完全积性函数,所以可以考虑对每个数进行分解质因数,将每个质数的解乘起来即可. 对于一个质数$p$,设它在各个数中分别出现了$b_1,b_2,...b_n$次,那么由生成函数和欧拉函数的性质得,它对答案的贡献为: \[(\prod_{i=1}^n\frac{p^{b_i+1}-1}{p-1}-1)\times\frac{p-1}{p}+1\] #include<cstdio> const int N=10000010,P=1000000007; int n,m,i,j,a[100…
对每个质因子分开计算再乘起来.使用类似生成函数的做法就很容易统计了. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; int read() { ,f=;char c=getchar(); ;c=getchar();} )+(x&…
原文链接http://www.cnblogs.com/zhouzhendong/p/8111725.html UPD(2018-03-26):蒟蒻回来重新学数论了.更新了题解和代码.之前的怼到后面去了. 题目传送门 - BZOJ3560 题意概括 给定$n$个正整数$a_1,a_2,a_3,...,a_n$,求 $$\Huge\sum_{i_1|a_1}\sum_{i_2|a_2}\cdots \sum_{i_n|a_n}\varphi(i_1i_2i_3...i_n)$$ 答案对$10^9+7…
3560: DZY Loves Math V Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 241  Solved: 133 Description 给定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<=1…
题目: BZOJ3560 分析: orz跳瓜. 欧拉函数的公式: \[\phi(n)=n(\prod \frac{p_i-1}{p_i})\] 其中 \(p_i\) 取遍 \(n\) 的所有质因子. 考虑原式,把欧拉函数展开,得到: \[\sum_{b_1|a_1}\sum_{b_2|a_2}\cdots\sum_{b_n|a_n}\prod b_i \prod \frac{(p_j-1)}{p_j}= \sum_{b_1|a_1}\sum_{b_2|a_2}\cdots\sum_{b_n|a_…
链接 题意:给定长度为 \(n\) 的序列 A,每次求区间 \([l,r]\) 的乘积的欧拉函数 题解 考虑离线怎么搞,将询问按右端点排序,然后按顺序扫这个序列 对于每个 \(A_i\) ,枚举它的质因数,由于不同的质因数只算一次,所以我们只关心每个质数它最后一次出现的位置,开一棵线段树维护一下每个位置的质数,加入新的质数时,先把之前的删掉,再加新的 现在强制在线,可以开可持久化线段树维护一下 #include<bits/stdc++.h> #define REP(i,a,b) for(int…
给定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完,实际上两个小时都被这道题…
Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 509  Solved: 284[Submit][Status][Discuss] Description 给定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<…