第三届蓝桥杯第三届蓝桥杯cc++真题真题
第三届蓝桥杯真题第三届蓝桥杯真题 c/c++
以下题⽬我⾃⼰也并不是所有的题⽬都是⼀次性就能做对或是有结题思路的。有些题⽬也是经过查证⽹上相关的资料或是参考了别⼈的
代码和解题思路才做出来的。总的来看,这份题⽬考了很多循环的只是,还有模拟,动态规划的只是。
其中做题过程中,也有了⼀些新的体会。起初做代码填空题的时候我没办法知道⾃⼰做的是对还是错,就跑到⽹上查答案,后来发现,
题⽬已经给出了代码,起始我们可以⾃⼰加上头⽂件,然后把空缺的代码加上进⾏调试的,这样就可以验证⾃⼰补充的代码是否正确了。
此外在进⾏调试的时候,可以利⽤重定向,将输⼊输出重定向到⽂件中,例如:
输⼊重定向:freopen("testin.txt","r",stdin)
输出重定向: freopen("testout.txt","w",stdout);
重定向以后,再有⼤量输⼊数据或者是⼤量输出数据的时候就省去了输出测试数据的时间,还是⽐较⽅便的。但是需要注意的是,再编
程答题需要提交代码的时候⼀定要记得把重定向语句注释掉或者删掉,否者将会出错。
结果填空题,由于只需要结果,所以我们的算法不必要很优,有很多时候都是可以⽤穷举的暴⼒解决⽅案获取答案的。
以下的题⽬我也只是做了简单的测试,虽然测试结果是正确的。但是也不保证答案的正确性,所以如果有错的地⽅可以帮忙加以改正。
。。
《《1》微⽣物增值》微⽣物增值
问题
假设有两种微⽣物 X 和 Y
X出⽣后每隔3分钟分裂⼀次(数⽬加倍),Y出⽣后每隔2分钟分裂⼀次(数⽬加倍)。
⼀个新出⽣的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。
现在已知有新出⽣的 X=10, Y=89,求60分钟后Y的数⽬。
如果X=10,Y=90 呢?
本题的要求就是写出这两种初始条件下,60分钟后Y的数⽬。
题⽬的结果令你震惊吗?这不是简单的数字游戏!真实的⽣物圈有着同样脆弱的性质!也许因为你消灭的那只 Y 就是最终导致 Y 种群灭绝
的最后⼀根稻草!
请忍住悲伤,把答案写在“解答.txt”中,不要写在这⾥!
解析
可以将时间的推移以0.5分钟为步长,分层6个阶段,每个阶段的X⽤素组x[7]表⽰,其中x[i]表⽰分裂后第0.5*i分钟的x个数,周期为6。
其中x[1]、x[3]、x[5]的X会吃掉Y;⽽x[6]的X会增值,增值后的X转到状态x[1]重新开始新⼀次的循环。60分钟后,既为120个半分钟后,⽽Y
每2分钟分裂⼀次,既为每4个半分钟分裂⼀次。
答案
0
94371840
参考代码
#include<stdio.h>
#include<stdlib.h>
#define M 1000
int main()
{
long long xn,yn,newx,x[7];
int s=120,i,j;
scanf("%d%d",&xn,&yn);
for(i=0;i<7;i++)x[i]=0;
x[1]=xn;
for(i=1;i<=s;i++)
{
评论0
最新资源