CF #589 (Div. 2)C. Primes and Multiplication 快速幂+质因数
题目链接:https://www.luogu.org/problem/CF1228C
问题可以转化为:求质数 $p$ 在 $1\sim n$ 中的每个数中的次幂之和.
因为 $p$ 是一个质数,只能由 $1$ 乘以 $p$ 表示出来,所以可以将问题转化为求 $p$ 在 $n!$ 中出现的次幂.
我们可以像提取公因式一样地去提取这个 $p$.
那么,先考虑 $p$ 的贡献:$1\sim n$ 中能被 $p$ 整除的乘积为 $p^{\frac{n}{p}}\times (\frac{n}{p}!)$
然后递归处理啊 $\frac{n}{p}!$ 中 $p$ 出现的次数.
由于 $p>2$,而 $n<10^8$,所以提取次数不会超过 $65$,复杂度是很优秀的.
#include <bits/stdc++.h>
#define mod 1000000007
#define ll unsigned long long
#define setIO(s) freopen(s".in","r",stdin)
using namespace std;
vector<ll>v;
ll qpow(ll base,ll k)
{
ll tmp=1ll;
for(;k;k>>=1,base=base*base%mod) if(k&1) tmp=tmp*base%mod;
return tmp;
}
int main()
{
int i,j;
ll x,n,p;
// setIO("input");
scanf("%lld%lld",&x,&n);
p=x;
for(i=2;i*i<=p;++i)
{
if(p%i==0)
{
v.push_back(i);
for(;p%i==0;) p/=i;
}
}
if(p>1) v.push_back(p);
ll ans=1ll;
for(i=0;i<v.size();++i)
{
ll m=n;
ll now=0;
while(m>=v[i])
{
now+=m/v[i];
m/=v[i];
}
ans=ans*qpow(v[i], now)%mod;
}
printf("%lld\n",(long long)ans);
return 0;
}
CF #589 (Div. 2)C. Primes and Multiplication 快速幂+质因数的更多相关文章
- Codeforces Round #589 (Div. 2) C - Primes and Multiplication(数学, 质数)
链接: https://codeforces.com/contest/1228/problem/C 题意: Let's introduce some definitions that will be ...
- CF #589 (Div. 2) D. Complete Tripartite 构造
这个 D 还是十分友好的~ 你发现这 $3$ 个集合形成了一个环的关系,所以随意调换顺序是无所谓的. 然后随便让 $1$ 个点成为第 $2$ 集合,那么不与这个点连边的一定也属于第二集合. 然后再随便 ...
- Codeforces Round #324 (Div. 2) B. Kolya and Tanya 快速幂
B. Kolya and Tanya Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/pro ...
- Codeforces 450B div.2 Jzzhu and Sequences 矩阵快速幂or规律
Jzzhu has invented a kind of sequences, they meet the following property: You are given x and y, ple ...
- Codeforces Round #518 (Div. 1) Computer Game 倍增+矩阵快速幂
接近于死亡的选手没有水平更博客,所以现在每五个月更一篇. 这道题呢,首先如果已经有权限升级了,那么后面肯定全部选的是 \(p_ib_i\) 最高的. 设这个值为 \(M=\max \limits_i ...
- CF #376 (Div. 2) C. dfs
1.CF #376 (Div. 2) C. Socks dfs 2.题意:给袜子上色,使n天左右脚袜子都同样颜色. 3.总结:一开始用链表存图,一直TLE test 6 (1)如果需 ...
- CF #375 (Div. 2) D. bfs
1.CF #375 (Div. 2) D. Lakes in Berland 2.总结:麻烦的bfs,但其实很水.. 3.题意:n*m的陆地与水泽,水泽在边界表示连通海洋.最后要剩k个湖,总要填掉多 ...
- CF #374 (Div. 2) D. 贪心,优先队列或set
1.CF #374 (Div. 2) D. Maxim and Array 2.总结:按绝对值最小贪心下去即可 3.题意:对n个数进行+x或-x的k次操作,要使操作之后的n个数乘积最小. (1)优 ...
- CF #374 (Div. 2) C. Journey dp
1.CF #374 (Div. 2) C. Journey 2.总结:好题,这一道题,WA,MLE,TLE,RE,各种姿势都来了一遍.. 3.题意:有向无环图,找出第1个点到第n个点的一条路径 ...
随机推荐
- Oracle查询部门工资最高员工的两种方法 1、MAX()函数 2、RANK()函数
本文以SCOTT用户下初始的EMP表为参考.代码可直接使用. 查询EMP表结构的语句如下,[代码1]: DESC EMP; EMP表结构如下:[结果1]: SQL> DESC EMP ...
- S03_CH10_DMA_4_Video_Stitch视频拼接系统
S03_CH10_DMA_4_Video_Stitch视频拼接系统 10.1概述 注意:本课程和上一课程<S03_CH09_DMA_4_Video_Switch视频切换系统>基本相同,不同 ...
- SpringCloud Hystrix 参数
hystrix.command.default和hystrix.threadpool.default中的default为默认CommandKey Command PropertiesExecution ...
- [异步请求]ajax、axios、fetch之间的详细区别以及优缺点
1.jQuery ajax $.ajax({ type: 'POST', url: url, data: data, dataType: dataType, success: function () ...
- (五)Hibernate的增删改查操作(2)
接上一章节 HQL的预编译语句 HIbernate中的预编译与Spring的预编译的处理差不多. 1:使用标准的? 2:使用命名参数 2.1:使用名称逐个设置. 2.2:使用Map(k ...
- webAPI中“System.Web.Http.HttpConfiguration”不包含“EnableSystemDiagnosticsTracing”的定义解决办法
webAPI中“System.Web.Http.HttpConfiguration”不包含“EnableSystemDiagnosticsTracing”的定义 今天从 运行 WebAPI 工程的代码 ...
- win7 bios引导启动Ubuntu
用easyBCD修改系统启动项更改 1.安装easyBCD后打开,点击“Add New Entry”>选择Linux/BSD:具体设置如图,Type选择GRUB2,Name自己随便写,笔者写的是 ...
- 伪元素before和after本质
之所以被称为伪元素,是因为他们不是真正的页面元素,html没有对应的元素,但所有的用法和表现行为和真正的页面元素是一样的,可以对其使用诸如页面元素一样的css样式,表面上看上去貌似页面的谋些元素,实际 ...
- Go 方法使用
方法的定义 在 Go 语言里,方法和函数只差了一个,那就是方法在 func 和标识符之间多了一个参数. type user struct { name string, email string, } ...
- [LeetCode] 15. 3Sum ☆☆☆(3数和为0)
描述 Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Fi ...