zoukankan      html  css  js  c++  java
  • 3194 基因变异

    3194 基因变异

     

     时间限制: 1 s
     空间限制: 32000 KB
     题目等级 : 黄金 Gold
     
     
     
    题目描述 Description

    小毛终于来到了冥王星,这是一颗已经不属于行星的矮行星,它的表面温度低于-220度。在这里,小毛惊奇的发现,他带来的厌氧菌开始了基因变异,裂变的速度与光照时间(秒)成乘积关系,公式如下:细菌个数=原个数*时间(秒),而如果关闭照明,则细菌停止繁殖裂变。现在已知n个细菌,经过m段光照时间后,一共有多少个细菌呢?

    输入描述 Input Description

    第一行为两个整数N,M(均小于1000),第2行为m个时间段的时间(均小于10000)。

    输出描述 Output Description

    仅一个正整数,表示最后的细菌个数。

    样例输入 Sample Input

    4 3

    100 20 3

    样例输出 Sample Output

    24000

    数据范围及提示 Data Size & Hint

    没必要啦

    分类标签 Tags 点此展开 

     
     
    标签都贴的什么呀,明明就是个高精度乘法,弄什么数论,吐槽~~吐槽~~
    #include<cstdio>
    #include<iostream>
    using namespace std;
    #define N 100010
    int n,m,x,lena,lenb;
    int a[N],b[N],c[N];
    int p=0;
    int main(){
        cin>>n>>m;
        int t=n;
        while(t){
            b[++p]=t%10;
            t/=10;
        }
        lenb=p;p=0;
        for(int k=1;k<=m;k++){
            cin>>x;
            while(x){
                a[++p]=x%10;
                x/=10;
            }
            lena=p;
            p=0;
            for(int i=1;i<=lena;i++){
                x=0;
                for(int j=1;j<=lenb;j++){
                    c[i+j-1]+=a[i]*b[j]+x;
                    x=c[i+j-1]/10;
                    c[i+j-1]%=10;
                }
                c[lenb+i]=x;
            }
            int j=lena+lenb;
            while(c[j]==0&&j>1) j--;
            lenb=j;
            for(int i=1;i<=lenb;i++)
                b[i]=c[i],c[i]=0;
        }
        for(int i=lenb;i;i--){
            cout<<b[i];
        }
        return 0;
    }
  • 相关阅读:
    MYSQL 数据库管理
    maven初学总结
    解决问题的思路
    java泛型综述
    几种不常用的排序算法
    创新思维
    Django从入门到放弃
    KlayGE 4.0中Deferred Rendering的改进(二):拥挤的GBuffer
    用Android NDK r6编译boost 1.47
    glloader移植到了Android
  • 原文地址:https://www.cnblogs.com/shenben/p/5639728.html
Copyright © 2011-2022 走看看