欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    最新蓝桥杯初赛b组试题.docx

    • 资源ID:3427158       资源大小:32.51KB        全文页数:34页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    最新蓝桥杯初赛b组试题.docx

    1、最新蓝桥杯初赛b组试题第一题 结果填空 3奖券数目有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是5位数(10-99),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。请提交该数字(一个整数),不要写任何多余的内容或说明性文字。-题解:考试的时候写了个回溯法,然后屁颠屁颠的开始做下面一题了。结果错了_ 1 #include 2 using namespace std; 3 bool fuck(int t) 4 5 while(t) 6 7 if(t

    2、%10=4)return false; 8 t/=10; 9 10 return true;11 12 int main()13 14 int ans = 0, t = 10;15 while(t100)16 if(fuck(t+)ans+;17 coutansendl;18 return 0;19 第一题正确答案:52488(我居然上来第一题就错了 居然写了13440_)/cout8*9*9*9*9; _第二题 结果填空 5星系炸弹在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。每个炸弹都可以设定多少天之后爆炸。比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它

    3、在2015年1月16日爆炸。有一个贝塔炸弹,2014年11月9日放置,定时为1天,请你计算它爆炸的准确日期。请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19请严格按照格式书写。不能出现其它文字或符号。-题解:不用废话,直接手算顶多3分钟,注意2016是闰年正确答案:2017-08-05第三题 结果填空 9三羊献瑞观察下面的加法算式: 祥 瑞 生 辉+ 三 羊 献 瑞-三 羊 生 瑞 气(如果有对齐问题,可以参看【图1.jpg】)其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任

    4、何多余内容。-题解:水题,给“祥瑞生辉三羊献气”编号01234567,直接回溯穷举即可 1 #include 2 using namespace std; 3 int a8; 4 bool b10; 5 void dfs(int cur) 6 7 if(cur = 8) 8 9 int x = a0*1+a1*100+a2*10+a3,y = a4*1+a5*100+a6*10+a1, z=a4*10+a5*1+a2*100+a1*10+a7;10 if(x+y=z)couta4a5a6a1endl;11 12 else13 14 for(int i = 0; i 10; i+)15 16 i

    5、f(cur = 0&i = 0)continue;17 if(cur = 4&i = 0)continue;18 if(!bi)19 20 bi=1;21 acur=i;22 dfs(cur+1);23 bi=0;24 25 26 27 28 int main()29 30 dfs(0);31 return 0;32 第三题正确答案:1085第四题 代码填空11格子中输出StringInGrid函数会在一个指定大小的格子中打印指定的字符串。要求字符串在水平、垂直两个方向上都居中。如果字符串太长,就截断。如果不能恰好居中,可以稍稍偏左或者偏上一点。下面的程序实现这个逻辑,请填写划线部分缺少的代码

    6、。 1 #include 2 #include 3 4 void StringInGrid(int width, int height, const char* s) 5 6 int i, k; 7 char buf1; 8 strcpy(buf, s); 9 if (strlen(s)width - 2) bufwidth - 2 = 0;10 11 printf(+);12 for (i = 0; iwidth - 2; i+) printf(-);13 printf(+n);14 15 for (k = 1; k(height - 1) / 2; k+)16 17 printf();18

    7、 for (i = 0; iwidth - 2; i+) printf( );19 printf(n);20 21 22 printf();23 24 printf(%*s%s%*s, _); /填空25 26 printf(n);27 28 for (k = (height - 1) / 2 + 1; kheight - 1; k+)29 30 printf();31 for (i = 0; iwidth - 2; i+) printf( );32 printf(n);33 34 35 printf(+);36 for (i = 0; iwidth - 2; i+) printf(-);37

    8、 printf(+n);38 39 40 int main()41 42 StringInGrid(20, 6, abcd1234);43 return 0;44 对于题目中数据,应该输出:+ abcd1234 +(如果出现对齐问题,参看【图1.jpg】)注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。-题解:我是一名OI党,入门直接学的是C+,结果考了个printf里面%*s的用法。太特么冷门了,穷举了没试出来,原来后面的参数要跟两个。分数11分怒丢正确答案:(width-strlen(s)-2)/2,s,(width-strlen(s)-1)/2,备注:答案可以形式多样性,只

    9、要代入使得代码成立即可,但要注意奇偶问题所以后面一个要+1不然sample过了也是错的第五题 代码填空13九数组分数1,2,3.9 这九个数字组成一个分数,其值恰好为1/3,如何组法?下面的程序实现了该功能,请填写划线部分缺失的代码。 1 #include 2 3 void test(int x) 4 5 int a = x0 * 1 + x1 * 100 + x2 * 10 + x3; 6 int b = x4 * 10 + x5 * 1 + x6 * 100 + x7 * 10 + x8; 7 8 if (a * 3 = b) printf(%d / %dn, a, b); 9 10 11

    10、 void f(int x, int k)12 13 int i, t;14 if (k = 9)15 16 test(x);17 return;18 19 20 for (i = k; i9; i+)21 22 t = xk; xk = xi; xi = t; 23 f(x, k + 1);24 _ / 填空处25 26 27 28 int main()29 30 int x = 1, 2, 3, 4, 5, 6, 7, 8, 9 ;31 f(x, 0);32 return 0;33 注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。-题解:水题,回溯法的最最基本常识,全局变量回

    11、溯完成后必须更改回初值正确答案:t=xk; xk=xi; xi=t;备注:1.答案可以形式多样性,只要代入使得代码成立即可2.我个人认为一个横线可以填多个语句,所以去掉大括号,或者利用原有t值少写一句子no problem第六题 结果填空17加法变乘法我们都知道:1+2+3+ . + 49 = 1225现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015比如:1+2+3+.+10*11+12+.+27*28+29+.+49 = 2015就是符合要求的答案。请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。注意:需要你提交的是一个整数,不要填写任

    12、何多余的内容。-题解:水题,一共是48个位置,C(48,2)扣掉连在一起的情况,穷举一遍过即可。 1 #include 2 using namespace std; 3 int main() 4 5 for(int i = 1; i 47; i+) 6 for(int j = i + 2; j 49; j+) 7 8 int sum = 0; 9 for(int k = 1; k i; k+)sum+=k;10 sum+=i*(i+1);11 for(int k = i+2; k j; k+)sum+=k;12 sum+=j*(j+1);13 for(int k = j+2; k 50; k+

    13、)sum+=k;14 if(sum=2015)coutiendl;15 16 return 0;17 第六题正确答案:16第七题 结果填空21牌型种数小明被劫持到X赌城,被迫与其他3人玩牌。一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?请填写该整数,不要填写任何多余的内容或说明文字。-题解:水题,一共是记号为A,2,3,4,5,6,7,8,9,10,J,Q,k的十三个元素,每个元素的情况可能是0,1,2,3,4。这十三个元素的和为13即

    14、可。回溯穷举再剪枝即可。 1 #include 2 using namespace std; 3 int ans = 0, sum = 0; 4 void dfs(int cur) 5 6 if (sum13)return; 7 if (cur = 13) 8 9 if (sum = 13)ans+;10 return;11 12 else13 14 for (int i = 0; i 5; i+)15 16 sum += i;17 dfs(cur + 1);18 sum -= i;19 20 21 22 int main()23 24 dfs(0);25 cout ans endl;26 r

    15、eturn 0;27 第七题正确答案:3598180第八题 程序设计 15移动距离X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3.当排满一行时,从下一行相邻的楼往反方向排号。比如:当小区排号宽度为6时,开始情形如下:1 2 3 4 5 612 11 10 9 8 713 14 15 .我们的问题是:已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动)输入为3个整数w m n,空格分开,都在1到10范围内w为排号宽度,m,n为待计算的楼号。要求输出一个整数,表示m n 两楼间最短移动距离。例如:用户输入:6 8 2则,程序应该输出:4再例如:用户

    16、输入:4 7 20则,程序应该输出:5资源约定:峰值内存消耗 256MCPU消耗 1ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入.” 的多余内容。所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意: main函数需要返回0注意: 只使用ANSI C/ANSI C+ 标准,不要调用依赖于编译环境或操作系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #include , 不能通过工程设置而省略常用头文件。提交时,注意选择所期望的编译器类型。-题解:从分值上都能看出来是水题。比前面两个填空题的分值都低。最简单的做法,小学生都会的,用数论的完全剩余系,我们强行更改矩阵

    17、的编号比如题目中的强行更改为:0 1 2 3 4 5 11 10 9 8 7 612 13 14.这样就算起来非常方便了,要求的答案就是坐标之差#include #include using namespace std;int main() int w,m,n; cinwmn; m-;n-; int m1=m/w, m2=m%w; if(m1&1)m2=w-1-m2; int n1=n/w, n2=n%w; if(n1&1)n2=w-1-n2; coutabs(m1-n1)+abs(m2-n2)endl; return 0;第八题第九题程序设计 25垒骰子赌圣atm晚年迷恋上了垒骰子,就是把骰

    18、子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。atm想计算一下有多少种不同的可能的垒骰子方式。两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。由于方案数可能过多,请输出模 109 + 7 的结果。不要小看了 atm 的骰子数量哦输入格式第一行两个整数 n mn表示骰子数目接下来 m 行,每行两个整数 a b ,表示 a 和 b 数字不

    19、能紧贴在一起。输出格式一行一个数,表示答案模 109 + 7 的结果。样例输入2 11 2样例输出544数据范围对于 30% 的数据:n = 5对于 60% 的数据:n = 100对于 100% 的数据:0 n = 109, m = 36资源约定:峰值内存消耗 256MCPU消耗 2ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入.” 的多余内容。所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意: main函数需要返回0注意: 只使用ANSI C/ANSI C+ 标准,不要调用依赖于编译环境或操作系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #include

    20、, 不能通过工程设置而省略常用头文件。提交时,注意选择所期望的编译器类型。-题解:终于不是水题了,然而却没全做出来。难度跳跃太大。考场上,我先用dfs做,结果数字大于5的时间就hold不住了,于是果断改成记忆化动态规划,但是只能到一万,实在没办法了。大神跟我说用矩阵快速幂做,所以现在立马现学现用。程序有空补。【考场程序】讲解:利用记忆化DP穷举底面衔接的所有情况,dppq表示第p层底面是q的情况种数,侧面是相互独立的最后乘以4n即可比如提给数据就是34再乘上两个4。但是上限1实在是达不到了。 1 #include 2 #include 3 #define N 1007 4 using name

    21、space std; 5 /考场上我用的map现在想想发现多余了 6 int o7 = 0, 4, 5, 6, 1, 2, 3 ; 7 bool fuck77; 8 int n, m; 9 long long ans = 0;10 const int maxn = 25;11 long long dpmaxn7;12 long long dfs(int cur, int p)13 14 if (cur = n) return 1;15 else16 17 if (dpcurp = 0)return dpcurp;18 long long t = 0;19 for (int i = 1; i n

    22、 m;32 for (int i = 0; i t1 t2;36 fuckt1t2 = 1;37 fuckt2t1 = 1;38 39 for (int i = 1; i 7; i+)40 41 ans+=dfs(1, i);42 ans %= N;43 44 for (int i = 0; i n; i+)45 46 ans *= 4;47 ans %= N;48 49 cout ans endl;50 return 0;51 考场程序,数据不够大所以要扣分,最大只能到10【AC版本】:矩阵快速幂同理我们只考虑底面的情况,最后乘上4n即可。我们设六阶矩阵An,其中An的第a行第b列表示第一层

    23、底面数字为a、第n层数字为b的所有排列的情况记六阶矩阵X中,第a行第b列表示相邻两层的是否能成功连接的情况。a和b能连则为1,a和b不能连则为0(注意是相邻两层的底面,不是衔接面,所以要转化,比如题给的1 2要改为1 5)根据上述定义,易得递推式:An= An-1X,且 A1= E(六阶单位矩阵)可得到An的表达式为An= Xn-1那么ans就是矩阵Xn-1的36个元素之和注意最后侧面的4n也要二分幂不然会爆炸 1 #include 2 #include 3 #define N 1007 4 using namespace std; 5 6 struct Matrix 7 8 long lon

    24、g a66; 9 Matrix(int x)10 11 memset(a, 0, sizeof(a);12 for (int i = 0; i 6; i+) aii = x;13 14 ;15 16 Matrix operator*(const Matrix& p, const Matrix& q) 17 18 Matrix ret(0);19 for (int i = 0; i 6; i+)20 for (int j = 0; j 6; j+)21 for (int k = 0; k = 1;37 38 return ret;39 40 41 int main()42 43 Matrix z

    25、(0);44 for (int i = 0; i 6; i+) 45 for (int j = 0; j n m; 51 for (int i = 0; i t1 t2;55 z.at1 - 1(t2 + 2) % 6 = 0;56 z.at2 - 1(t1 + 2) % 6 = 0;57 58 Matrix ret(0);59 ret = fast_mod(z, n - 1);60 long long ans = 0;61 for (int i = 0; i 6; i+)62 63 for (int j = 0; j 6; j+)64 65 ans += ret.aij;66 ans %= N;67 68 69 long long p = 4;70 while (n)71


    注意事项

    本文(最新蓝桥杯初赛b组试题.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开