首页 > 代码库 > Codevs 3194 基因变异
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;}
自己选的路,跪着也要走完!!!
Codevs 3194 基因变异
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。