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; }
时间: 2024-10-06 13:14:07