2017.4.19 细胞分裂 思考记录

来源:互联网 发布:windows共享文件夹 编辑:程序博客网 时间:2024/06/06 09:30

  虽说是普及组最强的数论题,,但还是普及组、、、

        搞了非常久。。。感觉似乎这就是极限了、、、

           这题主要就是分解质因数、、  然后看包含所有容器质因数的最少分裂次数   

               如果对细胞分裂的质因数出现次数增长、容器的次方理解不到位的话是很容易晕的。。。

               对于容器     12^2  =  2*2*2*2*3*3      12^3=2*2*2*2*2*2*3*3*3

                   可见  12^3=(2*2*3)^3=2^(2*3)*3^(1*3)    所以底数分解后直接乘指数即可知质因子出现次数


               对于细胞       若分裂比为1:4   分裂一次:2^2     分裂二次: 2^2*4=2^4     分裂三次:2^4*4=2^6  

                   可见分裂n次,就是1*n*该因子一次分裂的出现次数     和容器计算方式是一样的

                        所以直接指数相除就是单个因子的最少分裂次数    统计出最大值    再在所有种类细菌最大值中取个最小值即可

  

      码:

#include<iostream>#include<cstdio>using namespace std;#include<cstring>#define inf 1e12+7#define ll long longll su[30005],lie[30005],cun[30005],ans,lin,s[30005],n,m1,m2,i,j;bool no;int main(){scanf("%lld%lld%lld",&n,&m1,&m2);for(i=1;i<=n;i++)scanf("%lld",&s[i]);for(i=2;i<=m1;i++){if(!(m1%i))lie[++lie[0]]=i;while(!(m1%i))++su[i],m1/=i;}for(i=1;i<=lie[0];i++){su[lie[i]]*=m2;//cout<<lie[i]<<" ";}ans=inf;for(j=1;j<=n;j++){   no=0;memset(cun,0,sizeof(cun));lin=0;           for(i=1;i<=lie[0];i++)           {           if(s[j]%lie[i]){no=1;break;}           while(!(s[j]%lie[i]))s[j]/=lie[i],cun[lie[i]]++;           if(su[lie[i]]%cun[lie[i]]==0)lin=max(lin,su[lie[i]]/cun[lie[i]]);           else lin=max(lin,su[lie[i]]/cun[lie[i]]+1);   }     if(no)continue;ans=min(ans,lin);}if(ans==inf)printf("-1");else printf("%lld",ans); } 

        

数     

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 液化气跑气了怎么办 高层没有液化气管道怎么办 住在高层着火了怎么办 重庆产权50年后怎么办 小区在监狱附近怎么办 遇到开发商捂盘怎么办 卖完房子后悔了怎么办 没有钱买房子怎么办 没有钱想买房怎么办 房子卖亏了后悔怎么办 物业停业主水电怎么办 死者家属一直闹怎么办 车祸找不到死者家属怎么办 房子违章被投诉怎么办 桐乡世贸二期怎么办 失业金汇到保险金账户怎么办 氧气罐阀门漏气怎么办 小微餐饮证怎么办 打网球手腕疼怎么办 晚上睡觉饿了怎么办 孕妇凌晨饿了怎么办 减肥想吃泡面怎么办 自考的实践考核怎么办 c1本怎么办从业资格证 办理资格证假的怎么办 高一学习差怎么办 职业资格证书理论考试不合格怎么办 职称证查不到怎么办 社保与工资不符怎么办 社保审计不过关怎么办 企安宝登录不上怎么办 苹果维修没发票怎么办 园林绿化资质取消后怎么办 出租车从业资格证到期怎么办 养老金认证身份证不符怎么办 硬盘指示灯不亮怎么办 做业务产品质量很差怎么办 没有户籍证明了怎么办 回执编号忘了怎么办 泳镜里面花了怎么办 网页打印预览空白怎么办