[NOIP2009][vijos1814]细胞分裂(数学相关)
来源:互联网 发布:尚学堂java培训怎么样 编辑:程序博客网 时间:2024/05/18 01:45
题目描述
传送门
题解
题意实际上是要求最小的n,使
呃,,其实没有这么麻烦。将s和
如果想要
代码
#include<iostream>#include<cstring>#include<cstdio>using namespace std;#define N 100005int n,m1,m2,s,ans;int p[N],q[N],a[N],b[N];void calc(int x,int *p,int *a){ for (int i=2;i*i<=x;++i) if (x%i==0) { p[++p[0]]=i;a[p[0]]=0; while (x%i==0) x/=i,++a[p[0]]; } if (x>1) p[++p[0]]=x,a[p[0]]=1;}int gcd(int a,int b){ if (!b) return a; else return gcd(b,a%b);}void check(){ int nowa=1;int Max=0; for (int i=1;i<=q[0];++i) { while (nowa<=p[0]&&p[nowa]!=q[i]) ++nowa; if (nowa>p[0]) return; Max=max(Max,(b[i]-1)/a[nowa]+1); } if (ans==-1) ans=Max; else ans=min(ans,Max);}int main(){ scanf("%d",&n);scanf("%d%d",&m1,&m2); calc(m1,q,b);for (int i=1;i<=q[0];++i) b[i]*=m2; ans=-1; for (int i=1;i<=n;++i) { scanf("%d",&s); p[0]=0;calc(s,p,a); check(); } printf("%d\n",ans);}
总结
非常傻逼的一道题让我给搞残了。以后写代码要再细心一些,一旦不注意就会错误百出。
0 0
- [NOIP2009][vijos1814]细胞分裂(数学相关)
- [NOIP2009普及] 细胞分裂
- NOIP2009普及组-细胞分裂
- noip2009 细胞分裂 (质因数分解,处理大数间能否整除)
- NOIP2009普及组细胞分裂(数论)——yhx
- NOIP2009普及组细胞分裂(数论)——yhx
- 洛谷 P1069 [NOIP2009普及组 T3] 细胞分裂
- 细胞分裂
- 细胞分裂
- #include <NOIP2009 Junior> 细胞分裂 ——using namespace wxl;
- #include &lt;NOIP2009 Junior&gt; 细胞分裂 ——using namespace wxl;
- vijos P1814细胞分裂 (数论)
- NOIP2009
- NOIP2009
- 数学相关(未完成)
- noip2009 多项式输出 (模拟)
- noip2009 分数线划定 (模拟)
- noip2009 潜伏者 (模拟)
- 以字节为单位显示变量的内存存储数据
- 云邦互联可以申请免费空间 不错 不相信的可以试试
- 顺序表的基本操作
- Vimium与Vimperator
- Jupyter Notebook 快速入门(上)
- [NOIP2009][vijos1814]细胞分裂(数学相关)
- Java核心技术点之多线程
- 史上最详细的iOS之事件的传递和响应机制-原理篇
- IT公司面试经历的感悟
- JS 实现快速排序
- HTML笔记之一
- 产生三角波电路分析
- 史上最详细的iOS之事件的传递和响应机制-实践篇
- Ivy简介