洛谷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 细胞分裂 数学相关推荐

  1. 洛谷 P1069 细胞分裂 解题报告

    P1069 细胞分裂 题目描述 \(Hanks\)博士是\(BT\) (\(Bio-Tech\),生物技术) 领域的知名专家.现在,他正在为一个细胞实验做准备工作:培养细胞样本. \(Hanks\) ...

  2. 洛谷P2158仪仗队(数学,观察找规律,欧拉函数)

    题目链接:https://www.luogu.org/problemnew/show/P2158 读完题被吓到了,这是什么东西. 总之,需要观察+找规律啊!观察可以发现,从第三行开始,第i行中当前直角 ...

  3. 洛谷 深基 第4部分 基础数学与数论(19-21课)

    洛谷 深基 第4部分 基础数学与数论  第19章 位运算与进制转换 P1143 进制转换 https://www.luogu.com.cn/problem/P1143 洛谷P1143 进制转换的Pyt ...

  4. 洛谷 P1890 gcd区间

    P1890 gcd区间 题目提供者 洛谷OnlineJudge 标签 数论(数学相关) 难度 普及/提高- 题目描述 给定一行n个正整数a[1]..a[n]. m次询问,每次询问给定一个区间[L,R] ...

  5. 【数学1】基础数学问题 - 题单 - 洛谷

    这里写目录标题 [[数学1]基础数学问题 - 题单 - 洛谷](https://www.luogu.com.cn/training/117) [P1143 进制转换](https://www.luog ...

  6. 洛谷P1561 [USACO12JAN]爬山Mountain Climbing 贪心 数学

    洛谷P1561 [USACO12JAN]爬山Mountain Climbing 贪心 数学 1.我们可以发现最终的答案 = max( 上山时间总和 + 最快下山时间,下山时间总和 +最快上山时间 ) ...

  7. 洛谷试炼场-简单数学问题-二分查找

    洛谷试炼场-简单数学问题 P1147 连续自然数和 题解: 本题给定一个数n,求连续自然数的和为n,用一个前缀数组,low_bound,upper_bound,查找是否是同一个数.O(nlog(n)) ...

  8. 洛谷P1061 Jam的计数法 数学

    洛谷P1061 Jam的计数法 数学  已知一个字符串 其 均有 s--t构成 且字符串要求 s[ i ]<s[ j ] i < j 已知一个字符串 求按字典序排列 的后5个字符串 1. ...

  9. 洛谷——P2433 【深基1-2】小学数学 N 合一

    P2433 [深基1-2]小学数学 N 合一 题目描述 问题 1 请输出 I love Luogu! 问题 2 这里有 10 个苹果,小A 拿走了 2 个,Uim 拿走了 4 个,八尾勇拿走剩下的所有 ...

最新文章

  1. 【内核】linux内核启动流程详细分析
  2. The expression except (OSError, e)
  3. 基于数字移相信号发生器的频率相位差测量系统的FPGA实现
  4. springboot 异步mysql_spring boot 使用@Async实现异步调用方法
  5. android 按比例缩放,Android postScale不按比例缩放
  6. 1 计算机组成原理第一章 计算机系统概述 计算机发展历程、层次结构、性能指标
  7. HBase集群环境部署
  8. 用 Python 检验数据正态分布的几种方法
  9. c9500堆叠配置_用C ++堆叠
  10. Golang unsafe包使用笔记
  11. c语言dll导出函数举例,DLL中导出函数的两种方式(dllexport与.def文件)
  12. MFC 用Gdiplus画曲线和直线
  13. IEC 60068-2 规范介绍
  14. STM32学习笔记--I2C
  15. 汽车销量查询小助手(小程序)销量趋势图功能及代码知识分享
  16. java unbox_Java中Auto Box/Unbox容易踩到的“坑”,Integer
  17. 【RT-Thread Smart】ART-Pi Smart 开发板开箱及爱之初次体验
  18. golang EXE程序添加图标和详细信息(版本号,版权,公司信息等)
  19. 网络空间安全论文笔记2——漏洞
  20. Postgresql总结几种HA的部署方式

热门文章

  1. 使用反射获取类的静态属性值
  2. Python实战之Selenium自动化测试web刷新FW
  3. nodejs 通过 get获取数据修改redis数据
  4. Android之SwipeRefreshLayout下拉刷新组件
  5. 算法:冒泡排序(Bubble Sort)、插入排序(Insertion Sort)和选择排序(Selection Sort)总结...
  6. 12M电信宽带,为什么12台机器上网,总是掉线?有什么办法解决?请给位高手指教...
  7. 超柔磨绒印花空调被(200*230cm) -凡客诚品工商银行团购专区- VANCL凡客诚品
  8. 实验一 分治与递归—用分治法实现元素选择 java算法
  9. 用Word2007写Blog
  10. 大数据可视化技术的挑战及应对