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的更多相关文章

  1. CodeForces - 615D Multipliers(数论)

    http://codeforces.com/problemset/problem/615/D 题意 给出m个质因子,组成一个数n.问n的约数的乘积是多少,输出mod 1e+7的结果. 分析 从输入我们 ...

  2. Codeforces 615D Multipliers (数论)

    题目链接 Multipliers 题意很明确. 很显然答案可以表示成X ^ EXP % MOD 首先我们令N为输入的n个数的乘积.并且设N = (P1 ^ C1) * (P2 ^ C2) * ... ...

  3. 【14.67%】【codeforces 615D】Multipliers

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  4. CF 615D Multipliers

    题目:http://codeforces.com/contest/615/problem/D 求n的约数乘积. 设d(x)为x的约数个数,x=p1^a1+p2^a2+……+pn^an,f(x)为x的约 ...

  5. Codeforces Round #338 (Div. 2) D. Multipliers 数论

    D. Multipliers 题目连接: http://codeforces.com/contest/615/problem/D Description Ayrat has number n, rep ...

  6. codeforces 615 D. Multipliers (数论 + 小费马定理 + 素数)

    题目链接: codeforces 615 D. Multipliers 题目描述: 给出n个素数,这n个素数的乘积等于s,问p的所有因子相乘等于多少? 解题思路: 需要求出每一个素数的贡献值,设定在这 ...

  7. Codeforces Round #232 (Div. 1) A 解题报告

    A. On Number of Decompositions into Multipliers 题目连接:http://codeforces.com/contest/396/problem/A 大意: ...

  8. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  9. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

随机推荐

  1. java_spring_依赖注入

    IOC反转控制 PersonService属性 PersonDao personDao接受通过xml注入的对象 PersonDaoBean.  Person中save()调用 PersonDaoBea ...

  2. iOS开发技巧系列---使用链式编程和Block来实现UIAlertView

    UIAlertView是iOS开发过程中最常用的控件之一,是提醒用户做出选择最主要的工具.在iOS8及后来的系统中,苹果更推荐使用UIAlertController来代替UIAlertView.所以本 ...

  3. Objective-C中系统宏的用法总结

    先说一下本文中会提到的内容:##,__VA_ARGS__, __FILE__, __LINE__ , __FUNCTION__等 宏变量: 先举一个例子,会用到上面这些宏: #define mypri ...

  4. C C++源代码安全分析工具调研

    C C++源代码安全分析工具调研:http://blog.csdn.net/testing_is_believing/article/details/22047107

  5. 关于Eclipse Modeling Framework 实现模型驱动开发,第一部分

    ======================================EMF第二篇文章========================= 用 Eclipse Modeling Framework ...

  6. 为Debain &&Centos安装dig

    Debain&Ubuntu sudo apt-get install dnsutils Fdeoar&Centos yum install bind-utils

  7. javascript中substring和substr方法

    1.substring 方法 定义:用于提取字符串中介于两个指定下标之间的字符 语法:stringObject.substring(start,stop) 参数描述: start 必需.一个非负的整数 ...

  8. dedecms获取栏目下的频道列表

    可以使用: {dede:channelartlist}标签  使用方法: {dede:channelartlist row='6'} <dl>  <dt><a href= ...

  9. dedecms自定义函数(二次开发)

    一些功能可能dedecms没有,这个时候可以自己写一些函数: 1.打开inlude->extend.func.php,将函数写到里面 比如:前台: [field:id function=&quo ...

  10. Service的一些使用

    service服务一般主要是作为后台服务使用的,前台服务一般结合通知一起. service一般主要用作长期后台服务的,而且和Activity结合性不那么紧密, 一般如果需要频繁的更新UI主要是用Act ...