Codeforces 1114C(数论+唯一分解)
题目链接:传送门
解题思路:y1s1,拿到这题我脑袋中只有暴力,观摩了别人的博客,学到了点东西。对于本题,我们可以知道,在b进制后有几个0表示的是这个数是b的几次方的倍数,于是题目便转化为了求n的阶乘最大能被b的几次方整除,从唯一分解定理我们可以知道,我们对n的阶乘和b唯一分解得到:\(b=p1^{a1}\times p2^{a2}\times p3^{a3}……\)\(n!=p1^{b1}\times p2^{b2}\times p3^{b3}……\)
于是问题又转化为了求\(\{\frac{b1}{a1},\frac{b2}{a2}……\}\)
于是我们把b分解质因数,把因数和个数存在数组里,然后对于每个因数都去算a的阶乘里有多少个那个因数,然后除以它在b中的次数,求它可以够组成多少个b,对于每个因数都这么算,然后取最小值。
Code:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N = 1000005;
ll p[N],k[N],n,b;
int cnt;
ll f(ll x,ll y) {return x < y?0:x/y+f(x/y,y);
}void slove(ll x) {memset(p,0,sizeof p);memset(k,0,sizeof k);cnt = 0;for(ll i = 2; i * i <= x; ++i) {if(x % i == 0) {p[++cnt] = i;while(x % i == 0)x/= i,k[cnt]++;}}if(x > 1)p[++cnt] = x,k[cnt] = 1;
}ll work(ll n, ll b) {slove(b);ll ans = 0x3f3f3f3f3f3f3f3f;for(int i = 1;i <= cnt; ++i)ans = min(ans,f(n,p[i])/k[i]);return ans;
}int main()
{while(~scanf("%lld%lld",&n,&b))printf("%lld\n",work(n,b));return 0;
}
Codeforces 1114C(数论+唯一分解)相关推荐
- Codeforces数学1600day3[数学CodeForces - 1213D2, CodeForces - 1165E 数论,CodeForces - 1165D 因子分解]
ps:day2太水了不写qwq A - Equalizing by Division (hard version) CodeForces - 1213D2 题目大意:给你n个数和一个k,然后你可以执行 ...
- CodeForces 359D (数论+二分+ST算法)
题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=47319 题目大意:给定一个序列,要求确定一个子序列,①使得该子序 ...
- Codeforces 396A 数论,组合数学
题意:给一个a数组,求b 数组的方案数,但是要求两者乘积相同. 分析: 不可能将它们乘起来,对于每个数质因数分解,得到每个质因子个数,遍历这些质因子,将某个质因子放到 对应的盒子里面,可以不放,方案数 ...
- 线段树扫描线求矩形周长详解
线段树扫描线求矩形周长详解 原创 wucstdio 最后发布于2018-04-24 16:12:09 阅读数 841 收藏 发布于2018-04-24 16:12:09 版权声明:本文为博主原创文章, ...
- 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- Codeforces Beta Round #17 D. Notepad (数论 + 广义欧拉定理降幂)
Codeforces Beta Round #17 题目链接:点击我打开题目链接 大概题意: 给你 \(b\),\(n\),\(c\). 让你求:\((b)^{n-1}*(b-1)\%c\). \(2 ...
- Codeforces 1106F Lunar New Year and a Recursive Sequence (数学、线性代数、线性递推、数论、BSGS、扩展欧几里得算法)...
Codeforces 1106F Lunar New Year and a Recursive Sequence (数学.线性代数.线性递推.数论.BSGS.扩展欧几里得算法) 哎呀大水题..我写了一 ...
- Educational Codeforces Round 37 G. List Of Integers (二分,容斥定律,数论)
G. List Of Integers time limit per test 5 seconds memory limit per test 256 megabytes input standard ...
- [CodeForces 1603C] Extreme Extension(贪心 + 数论分块优化dp)
problem CodeForces solution observation1:\text{observation1}:observation1: 对于一个非空子段 [l,r][l,r][l,r], ...
最新文章
- 珂朵莉的约数(牛客练习赛9)
- Android Launcher 分析
- game,match,competition,contest区别
- 如何将拷贝过来的数据 *.ibd 文件生效
- YUI3学习笔记 ( 8 )
- linux telnet mysql_Linux下安装telnet(傻瓜教程)
- sqldf包:让SQL语句在R语言中执行
- Officescan防毒墙安装部署手册
- 小米路由器4a开发版固件_发现篇免拆刷小米路由器4a千兆版刷第三方固件的贴子!...
- 基于keras实现双向GRU的中文情感分析
- pytorch读取tif文件方法
- 进程虚拟地址空间区域划分
- ONNXRUNTIME_EXCEPTION : Non-zero status code returned while running Where node. Name:‘Where‘
- 17个小时内,各地相继出手帮中小企业,地产商减租百亿
- SSM毕设项目游泳馆管理系统851a0(java+VUE+Mybatis+Maven+Mysql)
- Python-子列表最大长度
- Matlab中安装NURBS工具箱及使用
- c++ 多线程 “锁”
- NEO源码分析之UTXO全局资产
- AFNetworking2.4.1解析