A微生物增殖

假设有两种微生物 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 种群灭绝的最后一根稻草!
code:

#include<iostream>using namespace std;int main(){int x=10;int y=90;for(int i=1;i<=120;i++){if(i%2==1){y-=x;}if(i%4==0){y*=2;}if(i%6==0){x*=2;}}cout<<y<<endl;return 0;
}
//94371840

ans:94371840

B古堡算式

福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:
ABCDE * ? = EDCBA
他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”
华生:“我猜也是!”
于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把 ABCDE 所代表的数字写出来。
思路:循环遍历每个字母可能的情况。
code:

#include<bits/stdc++.h>using namespace std;int main(){int a,b,c,d,e,f;for(a=0;a<=9;a++){for(b=0;b<=9;b++){for(c=0;c<=9;c++){for(d=0;d<=9;d++){for(e=0;e<=9;e++){for(f=0;f<=9;f++){set<int> ee;ee.insert(a);ee.insert(b);ee.insert(c);ee.insert(d);ee.insert(e);int num1=a*10000+b*1000+c*100+d*10+e;int num2=e*10000+d*1000+c*100+b*10+a;if(ee.size()==5&&num1*f==num2){printf("%d%d%d%d%d\n",a,b,c,d,e);}}}}}}}return 0;
}

ans:21978

C海盗比酒量

有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复… 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。
等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“…昨天,我正好喝了一瓶…奉劝大家,开船不喝酒,喝酒别开船…”
请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。
如果有多个可能的答案,请列出所有答案,每个答案占一行。
格式是:人数,人数,…
例如,有一种可能是:20,5,4,2,0
思路:4次之后船长喝了1瓶,每一次喝的量都是一个分数,4次之和为1
code:

#include<bits/stdc++.h>
using namespace std;int main()
{for(int a=20;a>=1;a--){for(int b=a-1;b>=1;b--){for(int c=b-1;c>=1;c--){for(int d=c-1;d>=1;d--){if(((a+b)*c*d+a*b*(c+d))==a*b*c*d){printf("%d,%d,%d,%d,0\n",a,b,c,d);}}}}}return 0;
}

ans:(含题干中给出的样例)

20,5,4,2,0
18,9,3,2,0
15,10,3,2,0
12,6,4,2,0

D- - -F为补全程序填空,这里略去

G密码发生器

在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全;如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或弄丢了…
这个程序的任务就是把一串拼音字母转换为6位数字(密码)。我们可以使用任何好记的拼音串(比如名字,王喜明,就写:wangximing)作为输入,程序输出6位数字。
变换的过程如下:
第一步. 把字符串6个一组折叠起来,比如wangximing则变为:
wangxi
ming
第二步. 把所有垂直在同一个位置的字符的ascii码值相加,得出6个数字,如上面的例子,则得出:
228 202 220 206 120 105
第三步. 再把每个数字“缩位”处理:就是把每个位的数字相加,得出的数字如果不是一位数字,就再缩位,直到变成一位数字为止。例如: 228 => 2+2+8=12 => 1+2=3
上面的数字缩位后变为:344836, 这就是程序最终的输出结果!
要求程序从标准输入接收数据,在标准输出上输出结果。
输入格式为:第一行是一个整数n(<100),表示下边有多少输入行,接下来是n行字符串,就是等待变换的字符串。
输出格式为:n行变换后的6位密码。
例如,输入:

5
zhangfeng
wangximing
jiujingfazi
woaibeijingtiananmen
haohaoxuexi

则输出:

772243
344836
297332
716652
875843

注意:
请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分!
在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。
请把所有函数写在同一个文件中,调试好后,存入与【考生文件夹】下对应题号的“解答.txt”中即可。
相关的工程文件不要拷入。
源代码中不能能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。允许使用STL类库,但不能使用MFC或ATL等非ANSI c++标准的类库。例如,不能使用CString类型(属于MFC类库)。
code:

#include<bits/stdc++.h>
using namespace std;int main()
{int n;scanf("%d",&n);for(int x=0;x<n;x++){char s[1000];getchar();scanf("%s",s);int len=strlen(s);int num[6]={0};for(int i=0;i<len;i++){num[i%6]+=s[i];}for(int i=0;i<6;i++){int count=num[i];while(count>=10){int cnt=0;while(count){cnt+=count%10;count/=10;}count=cnt;}num[i]=count;}for(int i=0;i<6;i++){printf("%d",num[i]);}printf("\n");}return 0;
}

H夺冠概率

足球比赛具有一定程度的偶然性,弱队也有战胜强队的可能。
假设有甲、乙、丙、丁四个球队。根据他们过去比赛的成绩,得出每个队与另一个队对阵时取胜的概率表:

      甲   乙    丙    丁
甲   -    0.1  0.3   0.5
乙  0.9   -    0.7   0.4
丙  0.7  0.3   -     0.2
丁  0.5  0.6  0.8    -

数据含义:甲对乙的取胜概率为0.1,丙对乙的胜率为0.3,…
现在要举行一次锦标赛。双方抽签,分两个组比,获胜的两个队再争夺冠军。(参见【1.jpg】)

请你进行10万次模拟,计算出甲队夺冠的概率。
注意:
请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分!
在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。
请把所有函数写在同一个文件中,调试好后,存入与【考生文件夹】下对应题号的“解答.txt”中即可。
相关的工程文件不要拷入。
源代码中不能能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
允许使用STL类库,但不能使用MFC或ATL等非ANSI c++标准的类库。例如,不能使用CString类型(属于MFC类库)。
code:


I取球博弈

今盒子里有n个小球,A、B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断。
我们约定:
每个人从盒子中取出的球的数目必须是:1,3,7或者8个。
轮到某一方取球时不能弃权!
A先取球,然后双方交替取球,直到取完。
被迫拿到最后一个球的一方为负方(输方)
请编程确定出在双方都不判断失误的情况下,对于特定的初始球数,A是否能赢?
程序运行时,从标准输入获得数据,其格式如下:
先是一个整数n(n<100),表示接下来有n个整数。然后是n个整数,每个占一行(整数<10000),表示初始球数。
程序则输出n行,表示A的输赢情况(输为0,赢为1)。
例如,用户输入:

4
1
2
10
18

则程序应该输出:

0
1
1
0

注意:
请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分!
在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。
请把所有函数写在同一个文件中,调试好后,存入与【考生文件夹】下对应题号的“解答.txt”中即可。
相关的工程文件不要拷入。
源代码中不能能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
允许使用STL类库,但不能使用MFC或ATL等非ANSI c++标准的类库。例如,不能使用CString类型(属于MFC类库)。
思路:
先把最简单的几个基础问题求出来,即1----10个球时,然后打表(这题必须打表,不打表必定超时!)

1---10问题
i  ans[i]
1  0
2  1
3  0
4  1
5  0
6  1
7  0
8  1
9  1
10 1

对于大于10的问题,总能分解为小问题,就拿11个球为例子吧;
当前11个球,A取一次,B取一次,这样剩余球在1—10里面,而1—10的问题已经求出,所以直接赋值就行;

打表时一定要注意A,B取球逻辑,
A,B都十分聪明(如题干所述,每一步都做最正确的抉择)
对于A,只要找到一种取球数(1或3或7或8)让B不管选多少都是B输,则A赢;
否则A输;
code:

#include<bits/stdc++.h>using namespace std;
int ans[10001];//存放答案数组(题目要求n<=10000)
int ball[4]={1,3,7,8};//存放单步取球的数目void f()
{for(int i=11;i<=10000;i++){int flag=0;//flag为0表示A输,1为A赢;先假设A输for(int ii=0;ii<4;ii++){//A的四种取球方案int cnt=0;for(int jj=0;jj<4;jj++){//B的四种取球方案int nowNum=i-ball[ii]-ball[jj];//剩余球数目,且一定求出来了if(nowNum>=1&&ans[nowNum]==0){//B一但找到一种方案使得A输,则A的这个方案不行//如果B  4步都不能使A输,那就没办法了,A必赢cnt++;break;}}if(cnt==0){ans[i]=1;flag=1;break;}}if(flag==0)ans[i]=0;}
}int main()
{//小规模问题---直接想出来即可,其实也没必要从11开始,从2开始都行,看自己怎么选了ans[1]=0;ans[2]=1;ans[3]=0;ans[4]=1;ans[5]=0;ans[6]=1;ans[7]=0;ans[8]=1;ans[9]=1;ans[10]=1;f();//直接打表int n;scanf("%d",&n);for(int i=0;i<n;i++){int num;scanf("%d",&num);printf("%d\n",ans[num]);}return 0;
}

这里吧1—100的输赢情况列出来吧

case1:B is win
case2:A is win
case3:B is win
case4:A is win
case5:B is win
case6:A is win
case7:B is win
case8:A is win
case9:A is win
case10:A is win
case11:A is win
case12:A is win
case13:A is win
case14:A is win
case15:A is win
case16:B is win
case17:A is win
case18:B is win
case19:A is win
case20:B is win
case21:A is win
case22:B is win
case23:A is win
case24:A is win
case25:A is win
case26:A is win
case27:A is win
case28:A is win
case29:A is win
case30:A is win
case31:B is win
case32:A is win
case33:B is win
case34:A is win
case35:B is win
case36:A is win
case37:B is win
case38:A is win
case39:A is win
case40:A is win
case41:A is win
case42:A is win
case43:A is win
case44:A is win
case45:A is win
case46:B is win
case47:A is win
case48:B is win
case49:A is win
case50:B is win
case51:A is win
case52:B is win
case53:A is win
case54:A is win
case55:A is win
case56:A is win
case57:A is win
case58:A is win
case59:A is win
case60:A is win
case61:B is win
case62:A is win
case63:B is win
case64:A is win
case65:B is win
case66:A is win
case67:B is win
case68:A is win
case69:A is win
case70:A is win
case71:A is win
case72:A is win
case73:A is win
case74:A is win
case75:A is win
case76:B is win
case77:A is win
case78:B is win
case79:A is win
case80:B is win
case81:A is win
case82:B is win
case83:A is win
case84:A is win
case85:A is win
case86:A is win
case87:A is win
case88:A is win
case89:A is win
case90:A is win
case91:B is win
case92:A is win
case93:B is win
case94:A is win
case95:B is win
case96:A is win
case97:B is win
case98:A is win
case99:A is win
case100:A is win

2012年蓝桥杯省赛B组题目整理相关推荐

  1. 【蓝桥杯真题】2021年蓝桥杯省赛A组题目解析+代码(python组)

    2021年蓝桥杯省赛A组题解(python组) 来自微信公众号:算法梦工厂,二维码见文末. 欢迎加入蓝桥杯备赛群:768245918,获取往届试题,测试数据,算法课程等相关资源. A:卡片 答案:31 ...

  2. 十二届蓝桥杯省赛B组C++解析(填空题部分)

    十二届蓝桥杯省赛B组C++解析(填空题部分) 目录 十二届蓝桥杯省赛B组C++解析(填空题部分) A:空间 B:卡片 C:直线 D:货物摆放 E:路径 A:空间 该题是一道计算机基础原理题,这里需要了 ...

  3. java dfs算法蓝桥杯题_【蓝桥杯省赛JavaB组真题详解】四平方和(2016)_疼疼蛇的博客-CSDN博客...

    原文作者:疼疼蛇 原文标题:[蓝桥杯省赛JavaB组真题详解]四平方和(2016) 发布时间:2021-02-26 15:00:01 题目描述 四平方和 四平方和定理,又称为拉格朗日定理: 每个正整数 ...

  4. 第十一届蓝桥杯省赛C++组试题 第3题 求阴影面积

    /* 第十一届蓝桥杯省赛C++组试题 第3题 求阴影面积 */ #include <bits/stdc++.h> using namespace std; int main() {int ...

  5. 第十一届蓝桥杯省赛C++组试题 第4题 选择题判定

    /* 第十一届蓝桥杯省赛C++组试题 第4题 选择题判定 */ #include<bits/stdc++.h>using namespace std;int main() {int c = ...

  6. 第十一届蓝桥杯省赛C++组试题 第6题

    /* 第十一届蓝桥杯省赛C++组试题 第6题 */ #include<bits/stdc++.h> using namespace std; struct node {string typ ...

  7. 第十一届蓝桥杯省赛C++组试题 第5题

    /* 第十一届蓝桥杯省赛C++组试题精讲第5题 */ #include <bits/stdc++.h> using namespace std;struct s{string name;i ...

  8. 第十一届蓝桥杯省赛 C++组试题 第2题 求完数

    /* 第十一届蓝桥杯省赛C++组试题精讲第2题 求完数因子:因子也叫因数,例如3×5=15,那么3和5是15的因子. 同时15×1=15,那么1和15也是15的因子. 1,3,5,15 这四个因子是1 ...

  9. 2020第十一届蓝桥杯省赛C组第一场

    2020第十一届蓝桥杯省赛C组第一场 试题 A: 指数计算 问题描述 题解 试题 B: 解密 问题描述 题解 试题 C: 跑步训练 问题描述 题解 试题 D: 合并检测 问题描述 题解 试题 E: R ...

最新文章

  1. linux无显卡运行程序,Ubuntu中在应用程序菜单添加未显示的应用程序启动器
  2. C++中的两个知识点
  3. 程序员应该收藏哪些资讯类网站
  4. CriminalIntent项目开发
  5. python定时任务管理系统_python定时任务最强框架APScheduler详细教程
  6. 计算机组成:真正理解单周期处理器的“数据通路”
  7. 如何将网页保存为PDF文件
  8. Failed to decode response: zlib_decode(): data error Retrying with degraded mode, check https://getc
  9. 上班/读研办公室摸鱼如何快速切屏不留痕迹?Win10切屏快捷键赶紧收藏起来
  10. 镜像网络MW受邀亮相巴比特杭州区块链国际周
  11. MOXA NPort5630串口设备联网服务器
  12. CSS3 2D转换3D转换
  13. windows7以上平台NDIS6框架的NDIS协议驱动开发
  14. 什么是同源策略?解决跨域的三种方法?
  15. 一起聊聊 dB、dB、dBm、dBi 吧!
  16. vue 八大生命周期
  17. pcb板子开窗_PCB中 开窗 是什么意思?
  18. wordpress开放注册和邮件问题解决
  19. python后端滴滴、网易、老虎证券
  20. Exchange-导出邮箱数据到pst文件

热门文章

  1. Vue.js(七) http (vue-resource和axios)
  2. Pattern Evaluation
  3. 台湾国立大学(林轩田)《机器学习基石》(第3讲)Types of Learning
  4. 旧手机搭建Linux服务器
  5. python中getitem_Python类中的魔法方法之 __getitem__ 和 __getattr__
  6. 宿舍一张桌子怎么放3台笔记本
  7. Office2016打开Word时点击保存弹出“word无法启动转换器RECOVR32.CNV”对话框问题解决
  8. Linux命令及使用方法new
  9. 立创EDA极速入门(2)——完成一个STM32最小系统板
  10. html字母输出空格,html 空格(html如何输出空格)