XJOI1680阿猫的实验

阿猫的实验

阿猫很喜欢生物学。他还在今年的全国中学生生物学联赛中获得了一等奖。
一天,阿猫在实验室听说了这样一种繁殖能力很强的老鼠。
这种老鼠在出生后的第一个月,可以生出a 对老鼠;第二个月,可以生出b 对老鼠;第三个
月及以后的每个月,都可以生出c 对老鼠。
阿猫对此十分好奇。他很想知道,如果他有一对刚出生的老鼠,按最理想的模式繁殖,且老
鼠不死,那么最少需要多少个月它们就可以覆盖整个地球。
为了完成这一猜想,阿猫需要知道这种老鼠在第N 个月时的数量。

输入格式:

输入只有一行,四个数,分别为a,b,c,N(0<=a<=b<=c<=100,N<=3000),
其含义为题目所述。

输出格式:

输出只有一个数,为第N 个月老鼠的数量。

样例输入:

0 1 1 11

样例输出:

144

高精度,很大的数,注意长度与进位的处理。(码农题)
 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 using namespace std;
 5 int a0[30001],a1[30001],a2[30001],a3[30001],s0,s1,s2,s3;
 6 int main()
 7 {
 8     int n,a,b,c;
 9     s1=s2=s3=0;
10     scanf("%d%d%d%d",&a,&b,&c,&n);
11     a0[1]=1;
12     s0=1;
13     for(int l=1;l<=n;l++)
14     {
15         s3=max(s2,s3);
16         for(int i=1;i<=s3;i++)
17         {
18             a3[i]+=a2[i];
19             if(a3[i]>=10)
20             {
21                 a3[i]-=10;
22                 a3[i+1]+=1;
23             }
24         }
25         if(a3[s3+1]>0) s3++;
26         memset(a2,0,sizeof(a2));
27         for(int i=1;i<=s1;i++) a2[i]=a1[i];
28         s2=s1;
29         memset(a1,0,sizeof(a1));
30         for(int i=1;i<=s0;i++) a1[i]=a0[i];
31         s1=s0;
32         memset(a0,0,sizeof(a0));
33         for(int i=1;i<=s1;i++)
34         {
35             a0[i]+=a1[i]*a;
36             a0[i+1]+=a0[i]/10;
37             a0[i]%=10;
38         }
39         for(int i=1;i<=s2;i++)
40         {
41             a0[i]+=a2[i]*b;
42             a0[i+1]+=a0[i]/10;
43             a0[i]%=10;
44         }
45         for(int i=1;i<=s3;i++)
46         {
47             a0[i]+=a3[i]*c;
48             a0[i+1]+=a0[i]/10;
49             a0[i]%=10;
50         }
51         s0+=50;
52         while(a0[s0]==0) s0--;
53         for(int i=1;i<=s0+10;i++)
54         {
55             a0[i+1]+=a0[i]/10;
56             a0[i]%=10;
57         }
58         s0+=20;
59         while(a0[s0]==0) s0--;
60     }
61     for(int i=1;i<=30000;i++)
62     {
63         a3[i]+=a2[i]+a1[i]+a0[i];
64         a3[i+1]+=a3[i]/10;
65         a3[i]%=10;
66     }
67     s3=30000;
68     while(a3[s3]==0) s3--;
69     for(int i=s3;i>=1;i--) printf("%d",a3[i]);
70     printf("\n");
71     return 0;
72 }
 
时间: 2024-12-30 22:06:46

XJOI1680阿猫的实验的相关文章

无人驾驶汽车的基本原理

截止目前为止,谷歌的无人驾驶汽车在公路上已经行驶了100多万公里,没有出现任何事故.这是什么原因呢?难道汽车长了眼睛?老实说,无人驾驶比有人驾驶更加安全,因为,机器不会分心,会专心开车. 1959年,美国神经学专家David Hubel(1926-2013)拿一只麻醉之后的猫做实验,在其大脑皮层里面插入一个微型电极,收集神经元发出的反应信号(尽管信号非常微弱).Hubel在这只小猫咪的眼前放置一块屏幕,依次投射不同亮度的图形,同时让图形慢慢移动.Hubel想要搞明白小猫咪的视觉系统是怎么收集.处

《时间简史》—— 读后总结

本书的影响力也是颇大的,在豆瓣排行榜居于首位,在这种诱惑下,我决定读读看,可惜...... 本书概要 本书作者是著名的 史蒂芬·霍金....看来真是应了那句话,上帝在关上一扇门,总会打开另一扇窗.霍金虽然肢体有碍,但是思维却不亚于常人,还胜于常人. 他提出了物理届很多知名的理论. 本书从几个方面讲述了时间-空间概念: 1 四维空间 2 广义相对论与量子力学 3 宇宙大爆炸 4 粒子 5 黑洞 6 时间方向 7 最后介绍了几个相关的人物 四维空间 正常在一张纸上,通过XY两轴可以确定一个点.在地球

Bug的类型

美国计算机科学家.图灵奖获得者詹姆斯·尼古拉·格雷(Jim Gray),在他的著名的论文“Why do computers stop and what can be done about it?”中首次提出了程序bug的类型,比如玻尔bug(Bohrbug). 海森堡bug(Bohrbug)等用著名科学家名称命名的bug.后来又出现了更多的bug类型.现在,让我们来看看它们都是什么bug类型. 美国计算机科学家.图灵奖获得者詹姆斯·尼古拉·格雷(Jim Gray) 玻尔bug(Bohrbug)

通过python的urllib.request库来爬取一只猫

我们实验的网站很简单,就是一个关于猫的图片的网站:http://placekitten.com 代码如下: import urllib.request respond = urllib.request.urlopen("http://placekitten.com.s3.amazonaws.com/homepage-samples/200/287.jpg") cat_img = respond.read() f = open('cat_200_300.jpg','wb') f.writ

使用 AT 命令实现西门子短信猫收发短信实例

通过AT指令对西门子短信猫收发短信的控制共有三种实现途径: (1) 最初的 Block 模式(2) 基于 AT 命令的 Text 模式 (3) 基于 AT 命令的 PDU 模式 本文记录的大量的TC35/TC35T 实验数据,总结了使用TC35/TC35T 短信猫收发短信的方法. 准备工作: 使用 TC35 收发短信息,用户必须准备一张已开通短信息服务 SIM 卡,并将其插入 MC2002 之 TC35 扩展模块 SIM 卡座中或 TC35T 的 SIM 卡座中. 使用 PC 配合 TC35T

201310-狸猫换太子-穿别人的鞋,走自己的路-Spider[4st TeAm]

狸猫换太子----穿别人的鞋,走自己的路(另类思维实现Ring0隐藏文件) 10号的时候接了朋友一个编程方面的订单,要求从头开始写一个精简版的远程控制软件,其他功能不说了,主要是一个,要求设置文件访问权限,要可设置4类(可访问,可写,可删除,可见) 根据字面意思很容易可以理解,可访问就是是否可以读(换句话说,要是不能访问的话,当然也就不能写了),可见的话就是是否可以被看见,可删除就是是否能被删除; 那么第一个想法是使用SSDT HOOK,但是自己重头开始写一个驱动比较累,而且调试比较费时间,特别

读短信猫或手机

将sms.dll 文件拷贝到系统安装目录中的system32 文件夹中,然后再根据以下接口函数说明和提供的例程源码开发接口函数:1.Sms_Connection(Com_Port As Integer,Com_BaudRate As Integer, Mobile_Type As String) AsIntegerSms_Connection 函数说明如下:功能描述:用于初始化终端与串口的连接Com_Port:串口号(0 为红外接口,1,2,3,...为串口)Com_BaudRate:波特率Mo

CCNP路由实验之十七 广域网技术之一

?? CCNP路由实验之十七广域网技术之一 广域网(WAN,Wide Area Network)也称远程网(long haul network ).通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络.广域网的通信子网可以利用公用分组交换网.卫星通信网和无线分组交换网,将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的.如因特网(Internet)是世界范围内最大的广域网.广域网WAN一般最多只包含O

薛定谔的猫

薛定谔的猫实验,是有前提条件的,就是符合量子力学的随机触发装置. 在一个封闭的盒子里,有一只猫,和一个装满毒气的装置.装置有50%的概率开启,如果开启的话,装置内的毒气会杀死盒子里的猫. 好,现在回到这个前提条件,就是装置的随机性.这50%的概率,不是简简单单的投一枚硬币,50%几率正面,50%几率反面这么简单.假如你只是投一枚硬币的话,那么你的掷出力度.掷出角度.硬币旋转的线速度,空气阻力,硬币旋转产生的空气动力,甚至是硬币表面的分子分部.地球的地转偏向力,任何细微的数据全部集中在一起,经过庞