• Codevs 3194 基因变异


    Codevs 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 点此展开 

     
     严重怀疑标签的真实性~~ 明明是高精乘法
    (⊙v⊙)嗯~ 代码:
    #include<iostream>
    #include<cstdio>
    using namespace std;
    
    const int N = 100010;
    int n,m,x,lena,lenb;
    int a[N],b[N],c[N];
    int p;
    
    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[i+lenb] = x;
            }
            int lenc = lena + lenb;
            while(c[lenc]==0&&lenc>1)
            lenc--;
            lenb=lenc;
            for(int i=1; i<=lenb; i++){
                b[i] = c[i];
                c[i] = 0;
            }    
        }
        for(int i=lenb; i>0; i--)
            cout<<b[i];
        return 0;
    }

    自己选的路,跪着也要走完!!!

  • 相关阅读:
    Ecshop去掉模版中随机出现Ecshop版权的方法
    ecshop邮件订阅按“订阅”没反应
    ecshop开发帮助
    ecshop循环计数
    ECSHOP购物车页面显示商品简单描述
    ecshop 函数列表大全
    ecshop 商品分类页 取得当前分类下的子分类方法
    ecshop调用指定分类和个数的文章列表
    thymeleaf中的th:assert用法
    thymeleaf中的模板布局
  • 原文地址:https://www.cnblogs.com/wsdestdq/p/6839524.html
Copyright © 2020-2023  润新知