洛谷P1069 细胞分裂 数学
洛谷P1069 细胞分裂
数学
质因数分解
题意 求一个最小的 自然数 x 使 s[ i ]^x 任意一个s[ i ] 能够整除以 m1^m2 只要能够整除以就行
题解 这题就是分解质因数 但是 分解s[ i ] 就太大了,我们只要分解 m1 就行了 ,因为m1比较小,分解完之后指数乘 m2就行
然后看s[ i ] 是否含有 m1的质因子 ,有就分解,如果没有这个质因子,说明一定不行,直接退出,有的话就是
m1 中含有的这个因子的个数 除以 s[ i ] 中含有的这个因子的个数,然后向上取整
PS m1==1 时特判一下, 0 步到位
还有分解质因数如果质数就会剩下一个数 ,这个数的个数也要乘以 m2
1 #include <cstdio> 2 #include <cmath> 3 #include <cstdlib> 4 #include <cstring> 5 #include <string> 6 #include <algorithm> 7 #include <iostream> 8 #include <iomanip> 9 using namespace std ; 10 11 struct node{ 12 int val,num,oth ; 13 }; 14 const int inf = 2e9 ; 15 int m1,m2,n,tot,x,mi,mx,k,kk ; 16 node s[1001] ; 17 18 inline int read() 19 { 20 char ch = getchar() ; 21 int x = 0,f = 1 ; 22 while(ch<'0'||ch>'9') { if(ch=='-') f = -1 ; ch = getchar() ; } 23 while(ch>='0'&&ch<='9' ) { x = x*10 + ch - 48 ; ch = getchar() ; } 24 return x*f ; 25 } 26 27 int main() 28 { 29 n = read() ; 30 m1 = read() ; m2 = read() ; 31 tot = 0 ; 32 if (m1==1) {cout<<0<<endl;return 0;} /// 33 for(int i=2,zz = int(sqrt(m1)) ;i<=zz;i++ ) 34 { 35 if(m1%i==0) 36 { 37 s[++tot].val = i ; 38 while(m1%i==0) s[tot].num++,m1/=i ; 39 s[tot].num*=m2 ; 40 } 41 } 42 if(m1!=1) s[++tot].val = m1,s[tot].num = 1*m2 ; 43 44 45 mi = inf ; 46 for(int i=1;i<=n;i++) 47 { 48 x = read() ; 49 mx = 0 ; 50 for(int j=1;j<=tot;j++ ) 51 { 52 s[ j ].oth = 0 ; 53 while(x%s[ j ].val==0) s[ j ].oth++,x/=s[ j ].val ; 54 if(s[ j ].oth==0) { 55 mx = inf ; 56 break ; 57 } 58 mx = max(mx,( s[ j ].num-1 ) /s[ j ].oth +1 ) ; 59 } 60 if(mx < mi ) 61 { 62 mi = mx ; 63 k = i ; kk = x; 64 } 65 } 66 //printf("%d %d\n",k,kk) ; 67 if(mi != inf ) 68 printf("%d\n",mi) ; 69 else 70 printf("-1\n") ; 71 return 0 ; 72 }
转载于:https://www.cnblogs.com/third2333/p/7054127.html
洛谷P1069 细胞分裂 数学相关推荐
- 洛谷 P1069 细胞分裂 解题报告
P1069 细胞分裂 题目描述 \(Hanks\)博士是\(BT\) (\(Bio-Tech\),生物技术) 领域的知名专家.现在,他正在为一个细胞实验做准备工作:培养细胞样本. \(Hanks\) ...
- 洛谷P2158仪仗队(数学,观察找规律,欧拉函数)
题目链接:https://www.luogu.org/problemnew/show/P2158 读完题被吓到了,这是什么东西. 总之,需要观察+找规律啊!观察可以发现,从第三行开始,第i行中当前直角 ...
- 洛谷 深基 第4部分 基础数学与数论(19-21课)
洛谷 深基 第4部分 基础数学与数论 第19章 位运算与进制转换 P1143 进制转换 https://www.luogu.com.cn/problem/P1143 洛谷P1143 进制转换的Pyt ...
- 洛谷 P1890 gcd区间
P1890 gcd区间 题目提供者 洛谷OnlineJudge 标签 数论(数学相关) 难度 普及/提高- 题目描述 给定一行n个正整数a[1]..a[n]. m次询问,每次询问给定一个区间[L,R] ...
- 【数学1】基础数学问题 - 题单 - 洛谷
这里写目录标题 [[数学1]基础数学问题 - 题单 - 洛谷](https://www.luogu.com.cn/training/117) [P1143 进制转换](https://www.luog ...
- 洛谷P1561 [USACO12JAN]爬山Mountain Climbing 贪心 数学
洛谷P1561 [USACO12JAN]爬山Mountain Climbing 贪心 数学 1.我们可以发现最终的答案 = max( 上山时间总和 + 最快下山时间,下山时间总和 +最快上山时间 ) ...
- 洛谷试炼场-简单数学问题-二分查找
洛谷试炼场-简单数学问题 P1147 连续自然数和 题解: 本题给定一个数n,求连续自然数的和为n,用一个前缀数组,low_bound,upper_bound,查找是否是同一个数.O(nlog(n)) ...
- 洛谷P1061 Jam的计数法 数学
洛谷P1061 Jam的计数法 数学 已知一个字符串 其 均有 s--t构成 且字符串要求 s[ i ]<s[ j ] i < j 已知一个字符串 求按字典序排列 的后5个字符串 1. ...
- 洛谷——P2433 【深基1-2】小学数学 N 合一
P2433 [深基1-2]小学数学 N 合一 题目描述 问题 1 请输出 I love Luogu! 问题 2 这里有 10 个苹果,小A 拿走了 2 个,Uim 拿走了 4 个,八尾勇拿走剩下的所有 ...
最新文章
- 【内核】linux内核启动流程详细分析
- The expression except (OSError, e)
- 基于数字移相信号发生器的频率相位差测量系统的FPGA实现
- springboot 异步mysql_spring boot 使用@Async实现异步调用方法
- android 按比例缩放,Android postScale不按比例缩放
- 1 计算机组成原理第一章 计算机系统概述 计算机发展历程、层次结构、性能指标
- HBase集群环境部署
- 用 Python 检验数据正态分布的几种方法
- c9500堆叠配置_用C ++堆叠
- Golang unsafe包使用笔记
- c语言dll导出函数举例,DLL中导出函数的两种方式(dllexport与.def文件)
- MFC 用Gdiplus画曲线和直线
- IEC 60068-2 规范介绍
- STM32学习笔记--I2C
- 汽车销量查询小助手(小程序)销量趋势图功能及代码知识分享
- java unbox_Java中Auto Box/Unbox容易踩到的“坑”,Integer
- 【RT-Thread Smart】ART-Pi Smart 开发板开箱及爱之初次体验
- golang EXE程序添加图标和详细信息(版本号,版权,公司信息等)
- 网络空间安全论文笔记2——漏洞
- Postgresql总结几种HA的部署方式
热门文章
- 使用反射获取类的静态属性值
- Python实战之Selenium自动化测试web刷新FW
- nodejs 通过 get获取数据修改redis数据
- Android之SwipeRefreshLayout下拉刷新组件
- 算法:冒泡排序(Bubble Sort)、插入排序(Insertion Sort)和选择排序(Selection Sort)总结...
- 12M电信宽带,为什么12台机器上网,总是掉线?有什么办法解决?请给位高手指教...
- 超柔磨绒印花空调被(200*230cm) -凡客诚品工商银行团购专区- VANCL凡客诚品
- 实验一 分治与递归—用分治法实现元素选择 java算法
- 用Word2007写Blog
- 大数据可视化技术的挑战及应对