【洛谷P1069 细胞分裂】



首先,光看题就觉得它很扯淡(你哪里来这么多的钱来买试管)
根据某位已经ak过ioi的名为ych的神仙说(一看就是数学题,一看就需要因式分解,emm,我果然没有发现美的眼睛qwq)
那么我们就根据ych神仙的思路找到了通往AC的道路
代码摘自(神仙的考试程序qwq)
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<iomanip>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#include<time.h>
#include<queue>
#include<stack>
using namespace std;
inline int read()
{
int ans=;
char last=' ',ch=getchar();
while(ch<''||ch>'') last=ch,ch=getchar();
while(ch>=''&&ch<='') ans=ans*+ch-'',ch=getchar();
if(last=='-') ans=-ans;
return ans;
}
//首先这道题显然是道数学题(要不然这数据怎么玩)
//样例1的解释启发我们这道题可以通过分解质因数做
//这个题其实条件等价于求a^x=k(m1^m2)的最小x值
//我们可以对两边进行分解质因数
//发现如果方程有解,则m1中不能包含a中没有的质因子
//但是a1的质因子可以比m1多
//那么最小的x就是找到最大的次数差值
struct prime
{
int cnt,pn[],t[];
}p,q;//一个储存题目给的条件,一个储存判断
int n,m1,m2;
inline void fenjie(int t,prime& p)//质因数分解2
{
p.cnt=;
for(int i=;i*i<=t;++i)
{
if(!(t%i))
{
p.pn[++p.cnt]=i;//记录第cnt个约数
p.t[p.cnt]=;
do
{
t/=i;
++p.t[p.cnt];//次数
}while(!(t%i));
}
}
if(t>)
{
p.pn[++p.cnt]=t;
p.t[p.cnt]=;
}
}
int main()
{
freopen("cell.in","r",stdin);
freopen("cell.out","w",stdout);
n=read(),m1=read(),m2=read();
if(m1==) return cout<<<<endl,;//先判断一波特殊情况
fenjie(m1,p);//把m1分解,存到p里
int ans,x;
ans=-;
for(int i=;i<=n;i++)
{
x=read();
fenjie(x,q);
int maxn=,nxt=;
//我们用nxt来存储x的下一个质因子的序号
bool flag=false;
if(q.cnt>=p.cnt)
//只有要求判断的数的质因子的个数>=题目给的条件的质因子的个数才能继续
for(int j=;j<=p.cnt;j++)//枚举m1的每一个质因子
{
while(q.pn[nxt]<p.pn[j]&&nxt<=q.cnt)++nxt;
if(nxt>q.cnt||q.pn[nxt]>p.pn[j])break;//如果没有这个质因子就跳出
int f=p.t[j]*m2/q.t[nxt];
if((p.t[j]*m2)%(q.t[nxt])) f++;
//让这两个次数相等,因为有可能不整除,所以还要判断一下,相当于向上取整
if(maxn<f)maxn=f;//求最大值
if(j==p.cnt) flag=; //标记答案
else flag=;
}
if(flag&&(ans==-||ans>maxn))ans=maxn;
}
printf("%d\n",ans);
return ;
}
【洛谷P1069 细胞分裂】的更多相关文章
- 洛谷 P1069 细胞分裂 解题报告
P1069 细胞分裂 题目描述 \(Hanks\)博士是\(BT\) (\(Bio-Tech\),生物技术) 领域的知名专家.现在,他正在为一个细胞实验做准备工作:培养细胞样本. \(Hanks\) ...
- 洛谷—— P1069 细胞分裂
https://www.luogu.org/problem/show?pid=1069#sub 题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家.现在,他正在为一个细 ...
- 洛谷 P1069 解题报告
P1069 细胞分裂 题目描述 \(Hanks\)博士是\(BT\) (\(Bio-Tech\),生物技术) 领域的知名专家.现在,他正在为一个细胞实验做准备工作:培养细胞样本. \(Hanks\) ...
- P1069 细胞分裂
P1069 细胞分裂 考虑质因数分解 先将m1,质因数分解后再根据数学定理将所有质数的质数全乘m2 然后将输入的数据相同处理,再判断 顺便说一下判断规矩 1肯定不行 如果分解后有没有m1质因数分解中的 ...
- P1069 细胞分裂——数学题,质因数分解
P1069 细胞分裂 我们求的就是(x^k)|(m1^m2) k的最小值: 先给m1分解质因数,再给每个细胞分解: 如果m1有的质因数,细胞没有就跳过: 否则就记录答案: 注意整数除法下取整的原则: ...
- 细胞分裂(洛谷 P1069)
题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家.现在,他正在为一个细胞实 验做准备工作:培养细胞样本. Hanks 博士手里现在有 N 种细胞,编号从 1~N,一个 ...
- luogu P1069 细胞分裂
题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家.现在,他正在为一个细胞实 验做准备工作:培养细胞样本. Hanks 博士手里现在有 N 种细胞,编号从 1~N,一个 ...
- Luogu P1069细胞分裂【分解质因数/数论】By cellur925
题目传送门 发现这题真的坑超多啊...调了一晚上终于过了...我好菜啊qwq. 题意说的比较明白,让你求满足(si^k)%(m1^m2)==0的最小k值.然后看数据范围我们知道,我们肯定不能暴力的判断 ...
- Solution -「HNOI 2007」「洛谷 P3185」分裂游戏
\(\mathcal{Description}\) Link. 给定 \(n\) 堆石子,数量为 \(\{a_n\}\),双人博弈,每轮操作选定 \(i<j\le k\),使 \(a_i ...
随机推荐
- 牛客练习赛51 C 勾股定理
链接:https://ac.nowcoder.com/acm/contest/1083/C 题目描述 给出直角三角形其中一条边的长度n,你的任务是构造剩下的两条边,使这三条边能构成一个直角三角形. 输 ...
- Django @csrf_exempt不适用于基于通用视图的类(Django @csrf_exempt does not work on generic view based class)
class ChromeLoginView(View): def get(self, request): return JsonResponse({'status': request.user.is_ ...
- linux-导入python自定义模块的使用方法
#!/usr/bin/python # -*- coding:utf -8 -*- import os import sys sys.path.append("/h/s/compare_f& ...
- 使用electron实现百度网盘悬浮窗口功能!
相关依赖 里面使用了vuex vue vue-route storeJs storeJs 用来持久化vuex状态 展示 介绍说明 没有使用electron内置的-webkit-app-region: ...
- 关于代码手写UI,xib和StoryBoard
代码手写UI 这种方法经常被学院派的极客或者依赖多人合作的大型项目大规模使用.Geek们喜欢用代码构建UI,是因为代码是键盘敲出来的,这样可以做到不开IB,手不离开键盘就完成工作,可以专注于编码环境, ...
- 流畅的Python (Fluent Python) —— 第一部分
Python 最好的品质之一是一致性. 魔术方法(magic method)是特殊方法的昵称.特殊方法也叫双下方法. 1.1 一摞Python风格的纸牌 import collections Card ...
- Linux架构之Nginx 动静分离
案例No.51:Nginx动静分离 1.web01配置静态资源 [root@web01 ~]# cd /etc/nginx/conf.d/#配置静态资源[root@web01 conf.d]# cat ...
- Crazy Search POJ - 1200 (字符串哈希hash)
Many people like to solve hard puzzles some of which may lead them to madness. One such puzzle could ...
- 计蒜客 蓝桥模拟 F. 结果填空:数独
代码: #include <cstdio> #include <cstdlib> #include <cstring> #include <iostream& ...
- PHP file函数
一.判断函数 is_file($filename) //判断是否文件 is_link($filename) //判断是否为链接符号 is_dir($filename) //判断是否为路径 is_rea ...
