hdu 5525 Product 数论算贡献
Product
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
First line of each case contains a single integer n.(1≤n≤105)
Next line contains n integers A1,A2....An,it's guaranteed not all Ai=0.(0≤Ai≤105).
It's guaranteed that ∑n≤500000.
0 1 1 0
5
1 2 3 4 5
473272463
- #pragma comment(linker, "/STACK:1024000000,1024000000")
- #include<iostream>
- #include<cstdio>
- #include<cmath>
- #include<string>
- #include<queue>
- #include<algorithm>
- #include<stack>
- #include<cstring>
- #include<vector>
- #include<list>
- #include<set>
- #include<map>
- using namespace std;
- #define ll long long
- #define pi (4*atan(1.0))
- #define eps 1e-14
- #define bug(x) cout<<"bug"<<x<<endl;
- const int N=2e5+,M=4e6+,inf=;
- const ll INF=1e18+,mod=1e9+;
- /// 数组大小
- int prime(int n)
- {
- if(n<=)
- return ;
- if(n==)
- return ;
- if(n%==)
- return ;
- int k, upperBound=n/;
- for(k=; k<=upperBound; k+=)
- {
- upperBound=n/k;
- if(n%k==)
- return ;
- }
- return ;
- }
- vector<int>p;
- int si[N];
- void init()
- {
- for(int i=;i<=;i++)
- if(prime(i))
- p.push_back(i);
- }
- ll quick(ll a,ll b,ll c)
- {
- ll ans=;
- while(b)
- {
- if(b&)ans=(ans*a)%c;
- b>>=;
- a=(a*a)%c;
- }
- return ans;
- }
- int main()
- {
- init();
- int n;
- while(~scanf("%d",&n))
- {
- memset(si,,sizeof(si));
- for(int i=;i<=n;i++)
- {
- int z;
- int x=i;
- scanf("%d",&z);
- for(int j=;j<p.size();j++)
- {
- if(1LL*p[j]*p[j]>x)break;
- if(x==)break;
- while(x%p[j]==)
- {
- si[j]+=z;
- si[j]=(si[j])%(*(mod-));
- x/=p[j];
- }
- }
- if(x!=)
- {
- int pos=lower_bound(p.begin(),p.end(),x)-p.begin();
- si[pos]+=z;
- }
- }
- ll sum=;
- for(int i=;i<p.size();i++)
- {
- sum*=(si[i]+);
- sum%=(*(mod-));
- }
- //cout<<sum<<endl;
- ll ans=;
- for(int i=;i<p.size();i++)
- {
- ans=(ans*quick(p[i],((sum*si[i])%(*(mod-)))/,mod))%(mod);
- }
- printf("%lld\n",ans);
- }
- return ;
- }
hdu 5525 Product 数论算贡献的更多相关文章
- HDU 5525 Product 数论
题意: 给出一个长度为\(n(1 \leq n \leq 10^5)\)的序列\(A_i\),\(N=\prod\limits_{i=1}^{n}i^{A_i}\).求\(N\)的所有约数的乘积. 分 ...
- Codeforces Round #289 (Div. 2, ACM ICPC Rules) E. Pretty Song 算贡献+前缀和
E. Pretty Song time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- hdu 5228 OO’s Sequence(单独取数算贡献)
Problem Description OO has got a array A of size n ,defined a function f(l,r) represent the number o ...
- HDU 5525:Product 欧拉定理
Product Accepts: 21 Submissions: 171 Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072 ...
- hdu GuGuFishtion 6390 数论 欧拉函数
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6390 直接开始证明: 我们设…………………………………….....…...............………… ...
- HDU 1299 基础数论 分解
给一个数n问有多少种x,y的组合使$\frac{1}{x}+\frac{1}{y}=\frac{1}{n},x<=y$满足,设y = k + n,代入得到$x = \frac{n^2}{k} + ...
- 2019ICPC西安邀请赛 - B. Product - 数论
打印的时候麻烦把:https://blog.csdn.net/skywalkert/article/details/50500009这个打印下来. 求\(\prod\limits_{i=1}^{n} ...
- 模拟+算贡献——cf1195D
比赛的时候没看到模数,用java大数在写,最后看到的时候已经慌了.. 把贡献算清楚就可以 下面是贡献的推导 有五位数 abcde * 10个 有两位数 fg * 3 个 那么这两种数组成的情况就是 a ...
- 2019牛客多校第七场 F Energy stones 树状数组+算贡献转化模拟
Energy stones 题意 有n块石头,每块有初始能量E[i],每秒石头会增长能量L[i],石头的能量上限是C[i],现有m次时刻,每次会把[s[i],t[i]]的石头的能量吸干,问最后得到了多 ...
随机推荐
- virtualBox虚拟机联网
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
- [How to] ROOT, Backup & Flash (MTKDroidTools, Spflashtool, CWM)
这是一篇来自xda论坛的文章,写得很详细,很有用,以下是原文: Hi This is a guide to ROOT, backup and flash your MTK65xx or Other d ...
- Amaze UI JS 气泡弹出
http://amazeui.org/javascript/popover?_ver=2.x
- POJ 1182 并查集
Description 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到 ...
- HDU 1586 log 的运用
log函数的应用,因为 log(a^b)=b*log(a); log(a*b)=log(a)+log(b); 比如 log10(123456789)==log10(1.23456789)+8; log ...
- 《算法C语言实现》————三道题目
1.对于N = 10,100和1000,记录你的运行环境中分别运行一下程序所花费的时间.(用python) import datetime global a a = 0 def time_1(s): ...
- Linux命令:删除与恢复命令
敲命令按以下顺序 ①vim filename ②e ③i ④ESC 删除命令: x(小写):删除光标所在处字符. dd:删除光标所在的行. D:删除从光标所在之处开始直到该行末尾的全部字符. < ...
- Windows批处理程序bat
@echo off 关闭回显,否则脚本中的命令都会输出,关闭后只显示结果. setlocal ENABLEDELAYEDEXPANSION 在for循环中变量扩展时需要用到 copy /Y ms ...
- linux常用命令:ifconfig 命令
许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...
- JS函数调用的四种方法
js的函数调用会免费奉送两个而外的参数就是 this 和 arguments .arguments是参数组,他并不是一个真实的数组,但是可以使用.length方法获得长度. 书上有说4中调用方式: 方 ...