1003 神奇的植物
来源:互联网 发布:百度网盘mac版是什么 编辑:程序博客网 时间:2024/05/16 19:00
描述
前不久,探险队b前往inst沙漠进行考察。他们在沙漠中发现了一种生命力十分强悍的植物。这种植物从种子到发芽只需要1天时间,而从发芽的第x天开始, 一直到第y天(包括第y天),每天又都会繁殖出一粒种子,每棵植物都会在发芽的第z天时枯萎死亡。因为探险队b以前在营地里并没有见过这种植物,于是他们 取了一颗种子放在他们的营地里(这一天叫做第0天),他们想知道第n天的时候营地里这种神奇的植物(不包括种子)的棵数m。但是这个数太大了,他们现在只 想知道m的最后8位是多少。输入
题目包含多个测试数据,每个测试数据只有一行,包含四个正整数x,y,z,n,用空格分开。其中0 < x <= y < z <= 2500,0 < n <= 2500。题目以四个整数0 0 0 0结束输入,这一行不用处理。输出
每个测试数据输出一行,包含一个正整数,表示m的最后8位,m不足八位的输出m。输出不含前导0。样例输入
1 2 3 4
0 0 0 0
0 0 0 0
样例输出
5解题思路:
纯粹的模拟题,建立两个数组,
F[2501],f[2501];其中F用来存放所有存活下来的植物棵树,f用来存放新产生的种子个数。按照题目说明即可求解。注意要对100000000取余
#include <stdio.h>long long F[2501],f[2501];int main(){int x,y,z,n,i,j;scanf("%d %d %d %d",&x,&y,&z,&n);while(x!=0 && y!=0 && z!=0 && n!=0){for(i=0;i<2502;i++){F[i]=f[i]=0;}f[0]=1;for(i=0;i<n;i++){if(i<z-1)F[i+1]=(F[i]+f[i])%100000000;else {F[i+1]=(F[i]+f[i]-f[i-z+1])%100000000;if(F[i+1]<0)F[i+1]+=100000000;}if(i<x-1)f[i+1]=0;else if (i<y-1){for(j=0;j<=i-x+1;j++){f[i+1]+=f[j];f[i+1]=f[i+1]%100000000;}}else {for(j=i-y+1;j<=i-x+1;j++){f[i+1]+=f[j];f[i+1]=f[i+1]%100000000;}}}printf("%lld\n",F[n]%100000000);scanf("%d %d %d %d",&x,&y,&z,&n);}return 0;}
- 1003 神奇的植物
- 神奇的植物
- 吃动物的植物
- 计算机工作室的植物
- 我种的植物
- 岛上的植物
- 我喜欢的植物
- 植物的知识
- 改善室内空气的健康植物
- 夜间释放氧气的植物
- 植物叶子的实时渲染
- Unity3d 真实的植物渲染
- Unity3d 真实的植物渲染
- 植物细胞分割的源代码
- cocos2dx 植物大战僵尸 11 场景自带的植物
- 一个植物目录的XML文件
- 一个植物目录的XML文件
- 办公室里的抢眼小植物
- 代码疑云(5)-类成员函数的thiscall约定
- 使用VSPackage自定义Visual Studio的演练
- [Object C] 字符串和数组NSString NSArray操作
- Yum 常用命令及错误解决方案
- c#中DateTime类 —— 日期篇
- 1003 神奇的植物
- Dojo Widget 传入参数处理机制讨论
- struts整合spring的3中方法
- 解压缩rar文件
- 很久没来写文章了,今天浅谈一下!呵呵
- 心情
- Linux常用命令小结
- 在textfield后面添加字符串
- 【Linux设备驱动程序(第三版)】----tasklet