Codeforces Round #338 div 2 D. Multipliers 数论
来源:互联网 发布:云盘系统源码 编辑:程序博客网 时间:2024/05/15 09:44
题意:给出一个数x 的所有质因子,求这个数所有因子的乘积%1e9+7。
思路:一个因子a 必然有另一个因子b 与它对应使得a∗b=x 。设总因子数为k ,所以答案就应该是xk2 。这个k 是怎么求的呢?因为x=a1k1∗a2k2∗…∗ankn 则k=(k1+1)∗(k2+1)∗…∗(kn+1)
处理xk2 要非常注意。在这里被坑了好久。
PS:c++11 auto真是好用的说。
http://codeforces.com/contest/615/problem/D
/********************************************* Problem : Codeforces Author : NMfloat InkTime (c) NM . All Rights Reserved .********************************************/#include <map>#include <set>#include <queue>#include <stack>#include <cmath>#include <ctime>#include <cstdio>#include <cstring>#include <cstdlib>#include <iostream>#include <algorithm>#define rep(i,a,b) for(int i = (a) ; i <= (b) ; i ++) //遍历#define rrep(i,a,b) for(int i = (b) ; i >= (a) ; i --) //反向遍历#define repS(it,p) for(auto it = p.begin() ; it != p.end() ; it ++) //遍历一个STL容器#define repE(p,u) for(Edge * p = G[u].first ; p ; p = p -> next) //遍历u所连接的点#define cls(a,x) memset(a,x,sizeof(a)) #define eps 1e-8using namespace std;//const int MOD = 1e9+7;const int INF = 0x3f3f3f3f;const int MAXN = 1e5+5;const int MAXE = 2e5+5;long long MOD = 1e9+7;typedef long long LL;typedef unsigned long long ULL;int T,n,m,k;int fx[] = {0,1,-1,0,0};int fy[] = {0,0,0,-1,1};map<int,int>mp;LL ans ;void input() { int tmp; ans = 1; mp.clear(); rep(i,1,n) { scanf("%d",&tmp); mp[tmp]++ ; ans = (ans * (LL)tmp) % MOD; }}LL quick_pow(LL base , LL mult) { LL ret = 1; while(mult) { if(mult & 1) ret = (ret * base) % MOD; base = ( base * base ) % MOD; mult >>= 1; } return ret;}void solve() { LL mult = 1 , ss = 1; int ok = 0 ; auto pos = mp.begin(); repS(it,mp) { if(it->second & 1) { ok = 1; pos = it;} ss = (ss * quick_pow(it->first,it->second/2)) % MOD; } if(ok) { repS(it,mp) { if(pos == it) { ans = quick_pow(ans,(it->second+1)/2); } else { ans = quick_pow(ans,it->second+1); } } } else { ans = ss; repS(it,mp) { ans = quick_pow(ans,it->second+1); } } printf("%I64d\n",ans);}int main(void) { // freopen("a.in","r",stdin); while(~scanf("%d",&n)) { input(); solve(); } return 0;}
0 0
- Codeforces Round #338 div 2 D. Multipliers 数论
- Codeforces Round #338 (Div. 2)D-Multipliers(数论)
- Codeforces Round #338 (Div. 2) D. Multipliers
- Codeforces Round #338 (Div.2) D.Multipliers
- Codeforces Round #338 (Div. 2)-D. Multipliers
- Codeforces 615D Multipliers (Round #338 (Div. 2) D题)
- Codeforces Round #338 (Div. 2) D. Multipliers(数学、降幂公式+逆元)
- Codeforces Round #338 (Div. 2) D Multipliers(费马小定理,快速幂)
- Codeforces Round #338 (Div. 2) D. Multipliers (求因子积)
- Codeforces Round #338 (Div. 2)D. Multipliers【费马小定理+组合数学】
- Codeforces Round #338 (Div. 2)-D Multipliers(所有因数之积)
- 【数论】Codeforces Round #334 (Div. 2) D
- [数论] Codeforces Round #324 (Div. 2)D. Dima and Lisa
- Codeforces Round #334 (Div. 2) D(数论 循环节)
- Codeforces Round #382 (Div. 2) D. Taxes 数论、哥德巴赫猜想
- Codeforces Round #382 (Div. 2)D. Taxes(数论知识)
- Codeforces Round #382 (Div. 2) D Taxes(数论)
- Codeforces Round #334 (Div. 2) D(数论 循环节)
- Precision Helper:最佳免费 CHM 制作软件
- Mongodb Notes
- 获取父进程的名称
- 文件的管理
- 分支的管理 branch
- Codeforces Round #338 div 2 D. Multipliers 数论
- 【PHP进阶篇】2.函数--慕课网【学习总结】
- 冲突管理
- XML文件的解析和json的解析
- DNA序列 uva1368
- tomcat源码阅读(一)——环境搭建
- 2015年十佳数据可视化项目
- 秒杀多线程第九篇 经典线程同步总结 关键段 事件 互斥量 信号量
- CSS3的过渡效果(transition)与动画(animation)