P1069 细胞分裂——数学题,质因数分解

P1069 细胞分裂

我们求的就是(x^k)|(m1^m2) k的最小值;

先给m1分解质因数,再给每个细胞分解;

如果m1有的质因数,细胞没有就跳过;

否则就记录答案;

注意整数除法下取整的原则;

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 const int maxn=30010;
 6 int n,m1,m2;
 7 int pre_p[maxn],m_p[maxn],num,cell_p[maxn];;
 8 bool vis[maxn];
 9
10 void pre_pare()
11 {
12     for(int i=2;i<=30000;i++)
13     {
14         if(!vis[i])
15         {
16             pre_p[++num]=i;
17             if(m1%i==0)
18             {
19                 while(m1%i==0&&m1)
20                 {
21                     m_p[i]+=m2;
22                     m1/=i;
23                 }
24             }
25         }
26         for(int j=1;j<=num;j++)
27         {
28             if(pre_p[j]*i>30000) break;
29             vis[pre_p[j]*i]=1;
30         }
31     }
32 }
33
34 void fuck_p(int x)
35 {
36     for(int j=1;j<=num;j++)
37     {
38         while(x%pre_p[j]==0&&x)
39         {
40             cell_p[pre_p[j]]++;
41             x/=pre_p[j];
42         }
43     }
44 }
45
46
47 int flag;
48 int ans=2147483647,sum;
49 void check()
50 {
51     sum=0;
52     for(int j=1;j<=num;j++)
53     {
54         if(m_p[pre_p[j]]&&!cell_p[pre_p[j]]) {flag=1;return ;}
55         if(m_p[pre_p[j]])
56         {
57             if(!(m_p[pre_p[j]]%cell_p[pre_p[j]])) sum=max(sum,m_p[pre_p[j]]/cell_p[pre_p[j]]);
58             else sum=max(sum,m_p[pre_p[j]]/cell_p[pre_p[j]]+1);
59         }
60     }
61 }
62 int main()
63 {
64     scanf("%d%d%d",&n,&m1,&m2);
65     pre_pare();
66     for(int i=1;i<=n;i++)
67     {
68         flag=0;
69         memset(cell_p,0,sizeof(cell_p));
70         int x;
71         scanf("%d",&x);
72         fuck_p(x);
73         check();
74         if(flag) continue;
75         ans=min(ans,sum);
76     }
77     printf("%d",ans==2147483647?-1:ans);
78     return 0;
79 }

原文地址:https://www.cnblogs.com/WHFF521/p/11650107.html

时间: 2024-08-03 12:55:50

P1069 细胞分裂——数学题,质因数分解的相关文章

P1069 细胞分裂

题目描述 HanksHanks 博士是 BTBT ( Bio-TechBio−Tech ,生物技术) 领域的知名专家.现在,他正在为一个细胞实验做准备工作:培养细胞样本. HanksHanks 博士手里现在有 NN 种细胞,编号从 1-N1−N ,一个第 ii 种细胞经过 11 秒钟可以分裂为 S_iSi? 个同种细胞( S_iSi?为正整数).现在他需要选取某种细胞的一个放进培养皿,让其自由分裂,进行培养.一段时间以后,再把培养皿中的所有细胞平均分入 MM 个试管,形成 MM 份样本,用于实验

浅谈质因数分解

浅谈质因数分解 ->part 1: 算数基本定理: 任何一个大于1的正整数都能唯一分解为有限个质数的乘积,可写作: \[N=\prod_{i=1}^m p_i^ {c_i}\] 其中\(c_i\)都是正整数,\(p_i\)都是质数,且满足\(p_1<p_2<-<p_m\) ->part 2: 分解方法: 试除法 结合质数判定的"试除法"和质数筛选的"\(Eratosthenes\) 筛法",我们可以扫描 \(2-\sqrt N\)的每个

细胞分裂(洛谷 P1069)

题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家.现在,他正在为一个细胞实 验做准备工作:培养细胞样本. Hanks 博士手里现在有 N 种细胞,编号从 1~N,一个第 i 种细胞经过 1 秒钟可以分裂为 Si个同种细胞(Si为正整数).现在他需要选取某种细胞的一个放进培养皿,让其自由分裂, 进行培养.一段时间以后,再把培养皿中的所有细胞平均分入 M 个试管,形成 M 份样本, 用于实验.Hanks 博士的试管数 M 很大,普通的计算机的基本数据类型无法存储这样

NOIP2009普及组细胞分裂(数论)——yhx

题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家.现在,他正在为一个细胞实 验做准备工作:培养细胞样本. Hanks 博士手里现在有 N 种细胞,编号从 1~N,一个第 i 种细胞经过 1 秒钟可以分裂为 Si个同种细胞(Si为正整数).现在他需要选取某种细胞的一个放进培养皿,让其自由分裂, 进行培养.一段时间以后,再把培养皿中的所有细胞平均分入 M 个试管,形成 M 份样本, 用于实验.Hanks 博士的试管数 M 很大,普通的计算机的基本数据类型无法存储这样

【NOIP2009】第三题&#183;细胞分裂

题目描述 Description Hanks 博士是BT (Bio-Tech,生物技术) 领域的知名专家.现在,他正在为一个细胞实验做准备工作:培养细胞样本.Hanks 博士手里现在有N 种细胞,编号从1~N,一个第i 种细胞经过1 秒钟可以分裂为Si 个同种细胞(Si 为正整数).现在他需要选取某种细胞的一个放进培养皿,让其自由分裂,进行培养.一段时间以后,再把培养皿中的所有细胞平均分入M 个试管,形成M 份样本,用于实验.Hanks 博士的试管数M 很大,普通的计算机的基本数据类型无法存储这

cogs 466. [NOIP2009] 细胞分裂

466. [NOIP2009] 细胞分裂 ★★   输入文件:cell.in   输出文件:cell.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述]    Hanks 博士是BT (Bio-Tech,生物技术) 领域的知名专家.现在,他正在为一个细胞实验做准备工作:培养细胞样本.    Hanks 博士手里现在有N 种细胞,编号从1~N,一个第i 种细胞经过1 秒钟可以分裂为Si 个同种细胞(Si 为正整数).现在他需要选取某种细胞的一个放进培养皿,让其自由分裂,

【BZOJ2227】【ZJOI2011】看电影 [组合数学][质因数分解]

看电影 Time Limit: 10 Sec  Memory Limit: 259 MB[Submit][Status][Discuss] Description 到了难得的假期,小白班上组织大家去看电影.但由于假期里看电影的人太多,很难做到让全班看上同一场电影,最后大家在一个偏僻的小胡同里找到了一家电影院.但这家电影院分配座位的方式很特殊,具体方式如下: 1. 电影院的座位共有K个,并被标号为1…K,每个人买完票后会被随机指定一个座位,具体来说是从1…K中等可能的随机选取一个正整数,设其为L.

Codevs 1313 质因数分解

1313 质因数分解 题目描述 Description 已知正整数 n是两个不同的质数的乘积,试求出较大的那个质数 . 输入描述 Input Description 输入只有一行,包含一个正整数 n. 输出描述 Output Description 输出只有一行,包含一个正整数p,即较大的那个质数. 样例输入 Sample Input 21 样例输出 Sample Output 7 #include<iostream> #include<cstdio> #include<cm

HDU 3988 n!质因数分解

Harry Potter and the Hide Story Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2324    Accepted Submission(s): 569 Problem Description iSea is tired of writing the story of Harry Potter, so, l