cf615D Multipliers】的更多相关文章

Ayrat has number n, represented as it's prime factorization pi of size m, i.e. n = p1·p2·...·pm. Ayrat got secret information that that the product of all divisors of n taken modulo 109 + 7 is the password to the secret data base. Now he wants to cal…
tags:[计数原理][乘法逆元][归纳の思想]题解(复杂度:O(mlogm)):棘手之处:n的约数多到爆炸.因此我们不妨从因子的角度来分析问题.对n分解质因数得:n = p1^a1 * p2^a2 * ... * pk^ak.令 M = (a1+1)*(a2+1)*...*(ak+1).p1在答案中被乘的次数为:(a2+1)*(a3+1)*...*(ak+1)*(1+2+...+a1) = M*a1/2p1给最终答案作出的贡献为:p1^(M*a1/2).同理可得其它因子给答案的贡献.将每一个因…
D. Multipliers 题目连接: http://codeforces.com/contest/615/problem/D Description Ayrat has number n, represented as it's prime factorization pi of size m, i.e. n = p1·p2·...·pm. Ayrat got secret information that that the product of all divisors of n take…
Multipliers 题意:给定一个2e5范围内的整数m,之后输入m个2e5内的素数(当然可以重复了),问把这些输入的素数全部乘起来所得的数的约数的乘积mod(1e9+7)等于多少? 思路:对题目样例模拟之后很容易就知道,对于每个素数pi出现的次数m就有pi^(m+1)*m/2,并且对于其他的素数还要在此基础上乘以前面的d(详见程序),但是在加入该素数之后对于前面出现的素数的结果也是需要增加的,即ans = pow_mod(ans,vb+1),表示对前面出现的每个素数每加一个素数对前面出现的指…
题目链接 Multipliers 题意很明确. 很显然答案可以表示成X ^ EXP % MOD 首先我们令N为输入的n个数的乘积.并且设N = (P1 ^ C1) * (P2 ^ C2) * ... * (Pk * Ck),Pi(1 <= i <= k)为质数. 1.N为完全平方数. 这个时候X = N的算术平方根,EXP = (C1 +1) * (C2 + 1) * ... * (Ck + 1), MOD = 1e9 + 7: 2.N不是完全平方数. 这个时候X = N, EXP = (C1…
题目链接: codeforces 615 D. Multipliers 题目描述: 给出n个素数,这n个素数的乘积等于s,问p的所有因子相乘等于多少? 解题思路: 需要求出每一个素数的贡献值,设定在这n个素数中,有m个不同的素数,可表示为s = p1^a1*p1^a2*p3^a3*p4^a4.....pn^an,根据唯一分解定理可知,s的因子有(a1+1)*(a2+1)+......+(an+1) 个,对于pi的权值可以理解为:pi这个因子不出现,s的因子个数为x = (a1+1)*(a2+1)…
Portal Description 给出\(n(n\leq500)\)个\([1,10^9]\)的数,令\(m=\prod_{i=1}^n a_i\).求有多少个有序排列\(\{a_n\}\),使得\(\prod_{i=1}^n a_i=m\).答案\(mod \ 10^9+7\):两个有序排列不同当且仅当\(\exists i,a_i \neq b_i\). Solution 将\(m\)分解质因数,即\(m=\prod_{i=1}^t p_i^{k_i}\). 将\(m\)分配到\(n\)…
前言: Alternating Direction Method of Multipliers(ADMM)算法并不是一个很新的算法,他只是整合许多不少经典优化思路,然后结合现代统计学习所遇到的问题,提出了一个比较一般的比较好实施的分布式计算框架.在了解ADMM之前,需要了解它的前身,对偶上升法(Dual Ascent)和增强拉格朗日乘子法(Augmented Lagrangians and the Method of Multipliers). 文章主要参考资料如下: [1]Distribute…
题意:给你n个数,然后把这个n个数的乘积化成n个数相乘,可以化成多少个. 思路:分解质因数,求出每一个质因子的个数,然后用组合数学中隔板法把这些质因子分成n分,答案就是所有质因子划分成n份的情况的乘积. #include <cstdio> #include <cstring> #include <map> #include <algorithm> #define maxn 100100 #define ll long long using namespace…
题目:http://codeforces.com/contest/615/problem/D 求n的约数乘积. 设d(x)为x的约数个数,x=p1^a1+p2^a2+……+pn^an,f(x)为x的约数乘积. 若a,b互质,有f(ab)=f(a)^d(b)*f(b)^d(a),d(ab)=d(a)*d(b) 然后f(p^k)=p^(k*(k+1)/2) (其实就是拆出来算贡献.. #include<cstring> #include<iostream> #include<cs…