codeforces 615D - Multipliers
题意:给定一个2e5范围内的整数m,之后输入m个2e5内的素数(当然可以重复了),问把这些输入的素数全部乘起来所得的数的约数的乘积mod(1e9+7)等于多少?
思路:对题目样例模拟之后很容易就知道,对于每个素数pi出现的次数m就有pi^(m+1)*m/2,并且对于其他的素数还要在此基础上乘以前面的d(详见程序),但是在加入该素数之后对于前面出现的素数的结果也是需要增加的,即ans = pow_mod(ans,vb+1),表示对前面出现的每个素数每加一个素数对前面出现的指数的变化; **里面对于指数部分,d = d*(vb+1)%(mod-1);之所以%(mod-1)是因为这里的d是指数不是结果,对于素数mod;(a^n)%mod = a^(n%(mod - 1))%mod;
//108ms
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod = ;
ll d = ,ans = ;
map<ll,ll> mp;
ll pow_mod(ll a,ll n)
{
return n?pow_mod(a*a%mod,n>>)*(n&?a:)%mod:;
}
int main()
{
int m,i,p;
cin>>m;
for(i=;i<=m;i++) scanf("%d",&p),mp[p]++;
for(auto v:mp){
ll va = v.first,vb = v.second;
/*pow_mod(ans,vb+1)表示都前面处理过现在的结果,
*pow_mod(va,(vb+1)*vb/2)表示当前单个v时的结果,
再来pow_mod(...,d)表示前面处理的对当前的系数影响*/
ans = pow_mod(ans,vb+)*pow_mod(pow_mod(va,(vb+)*vb/),d)%mod;//并不是ans *= ...
d = d*(vb+)%(mod-);//欧拉函数的性质
}
cout<<ans;
}
codeforces 615D - Multipliers的更多相关文章
- CodeForces - 615D Multipliers(数论)
http://codeforces.com/problemset/problem/615/D 题意 给出m个质因子,组成一个数n.问n的约数的乘积是多少,输出mod 1e+7的结果. 分析 从输入我们 ...
- Codeforces 615D Multipliers (数论)
题目链接 Multipliers 题意很明确. 很显然答案可以表示成X ^ EXP % MOD 首先我们令N为输入的n个数的乘积.并且设N = (P1 ^ C1) * (P2 ^ C2) * ... ...
- 【14.67%】【codeforces 615D】Multipliers
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- CF 615D Multipliers
题目:http://codeforces.com/contest/615/problem/D 求n的约数乘积. 设d(x)为x的约数个数,x=p1^a1+p2^a2+……+pn^an,f(x)为x的约 ...
- Codeforces Round #338 (Div. 2) D. Multipliers 数论
D. Multipliers 题目连接: http://codeforces.com/contest/615/problem/D Description Ayrat has number n, rep ...
- codeforces 615 D. Multipliers (数论 + 小费马定理 + 素数)
题目链接: codeforces 615 D. Multipliers 题目描述: 给出n个素数,这n个素数的乘积等于s,问p的所有因子相乘等于多少? 解题思路: 需要求出每一个素数的贡献值,设定在这 ...
- Codeforces Round #232 (Div. 1) A 解题报告
A. On Number of Decompositions into Multipliers 题目连接:http://codeforces.com/contest/396/problem/A 大意: ...
- python爬虫学习(5) —— 扒一下codeforces题面
上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...
- 【Codeforces 738D】Sea Battle(贪心)
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
随机推荐
- 101个直接可以拿来用的JavaScript实用功能代码片段(转)
1.原生JavaScript实现字符串长度截取 function cutstr(str, len) { var temp; var icount = 0; var patrn = /[^x00-xff ...
- 批量除去php页面的bom,页面meta跑到body中就是这个问题
<?php if (isset($_GET['dir'])){ //设置文件目录 $basedir=$_GET['dir']; }else{ $basedir = '.'; } $auto = ...
- java编程思想第四版中net.mindview.util包
把 net那个包 放入到你编写的项目同一个文件夹下(与src文件夹平级的那个),然后刷新一下工程即可
- android studio的里的 content_XXX_xml问题
遇到这个问题就是androidStudio的版本问题,androidStudio会出现这个问题是在androidStudio1.4以上版本当遇到这个问题的时候建Activity的时候选择EmptyAc ...
- lshw 命令(查看硬件信息)
帮助 $ lshw -h Hardware Lister (lshw) - B.02.16 usage: lshw [-format] [-options ...] lshw -version -ve ...
- signal函数、sigaction函数及信号集(sigemptyset,sigaddset)操作函数
信号是与一定的进程相联系的.也就是说,一个进程可以决定在进程中对哪些信号进行什 么样的处理.例如,一个进程可以忽略某些信号而只处理其他一些信号:另外,一个进程还可以选择如何处理信号.总之,这些总与特定 ...
- Java基本排序
长度为N的数组升序排序 一,冒泡排序 public class BubbleSort { private double[] data; public BubbleSort(double[] data) ...
- 关于Eclipse中的egit的常规使用和模板
修改bug的模板 要提交的comment信息.TDI-31426 fix bug: if get studio license use : Import License :after get lice ...
- webbroswer 后台注入脚本 的方法
HtmlElement script = webBrowser.Document.CreateElement("script"); script.SetAttribute(&quo ...
- php中的作用域
在php中分为局部变量.全局变量和静态变量: 局部变量就是在函数体内声明的变量,例子: <?php //作用域 $a=5; function show($b){ $a=$b;//相当于 ...