赞
踩
这里给大家分享第十二届蓝桥杯B组的试题(c++,java,python基本完全一样)。
链接: https://pan.baidu.com/s/1pHQXtKblcuQjn0kZD9LLvg 提取码: vfbv
小蓝准备用 256 M 的内存空间开一个数组,数组的每个元素都是 32 位二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问 256MB的空间可以存储多少个 32 位二进制整数?
答案:256 * 1024 * 1024 * 8 / 32 = 67108864
8位等于1字节
小蓝有很多数字卡片,每张卡片上都是数字 0 到 9。小蓝准备用这些卡片来拼一些数,他想从 1 开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。小蓝想知道自己能从 1 拼到多少。例如,当小蓝有 3 张卡片,其中0 到 9 各 3 张,则小蓝可以拼出 1 到 10,但是拼 11 时卡片 1 已经只有一张了,不够拼出 11。现在小蓝手里有 0 到 9 的卡片各 2021张,共 20210 张,请问小蓝可以从 1 拼到多少?提示:建议使用计算机编程解决问题。
答案: 3181
#include <bits/stdc++.h> using namespace std; int a[10]; int main() { for(int i = 0;i<10;i++) a[i] = 2021; int k,n,ans = -1; for(int i = 1;i<= 100000;i++){ k = i; while(k){ int w = k%10; a[w]--; k/= 10; if(a[w] == -1){ ans = i; break; } } if(ans != -1) break; } printf("%d",ans-1); return 0; }
小蓝学习了最短路径之后特别高兴,他定义了一个特别的图,希望找到图中的最短路径。小蓝的图由 2021 个结点组成,依次编号 1 至 2021。对于两个不同的结点 a,b,如果 a 和b 的差的绝对值大于 21 ,则两个结点之间没有边相连;如果 a 和 b 的差的绝对值小于等于 21,则两个点之间有一条长度为 a 和 b 的最小公倍数的无向边相连。例如:结点 1 和结点 23 之间没有边相连;结点 3 和结点 24 之间有一条无向边,长度为 24;结点 15 和结点 25 之间有一条无向边,长度为 75 。请计算,结点 1 和结点 2021 之间的最短路径长度是多少。
使用最短路算法 dijk或者优化了的floyd很快就出来了
答案:10266837
#include <bits/stdc++.h> using namespace std; const long long inf = 0x7fffffff; long long mp[2031][2031]; int main() { int i,j,k; for(i = 1;i<=2021;i++){ for(j = i;j<=2021;j++){ mp[i][j] = mp[j][i] = inf; } } for(i = 1;i<2022;i++){ for(j = i;j<2022;j++){ if((j-i) <= 21) mp[i][j] = mp[j][i] = (i*j)/__gcd(i,j); } } for(k = 1;k < 2022;k++) { for(i = 1;i < 2022;i++){ for(j = i;j < 2022;j++){ if(mp[i][k]+mp[k][j] < mp[i][j]) mp[i][j] = mp[j][i] = mp[i][k]+mp[k][j]; } } } printf("%lld",mp[2021][1]); return 0; }
动态规划:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。