试题A:空间
1B是8位,32位二进制数占用4B空间,1MB=2^10KB=2^20B
那么可以存放32位二进制数的个数为256*2^20*8/32=67108864
试题B:卡片
分析:因为数据只有2021,所以直接模拟即可
结果为:3181(注意题目中问的是能够完整的拼到多少)
细节见代码:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<map>
#include<queue>
#include<vector>
#include<cmath>
using namespace std;
const int N=1e5+10;
int cnt[15];
int main()
{
for(int i=0;i<=9;i++)
cnt[i]=2021;
bool flag=true;//标记当前是否存在卡片不够的情况
int i;
for(i=1;;i++)//尝试拼i
{
int t=i;//定义一个临时变量t,防止i被修改
while(t)
{
int r=t%10;
t/=10;
if(cnt[r]==0)
{
flag=false;
break;
}
cnt[r]--;
}
if(!flag) break;
}
printf("%d",i-1);//最多拼到i-1
return 0;
}
试题C:直线
答案是40257
这道题目细节比较多,讲解见链接:(6条消息) (第十二届蓝桥杯省赛)试题C直线(set+防止精度损失)_AC__dream的博客-CSDN博客
试题D:货物摆放
答案:2430
详情见博客:(1条消息) 第十二届蓝桥杯省赛:货物摆放_AC__dream的博客-CSDN博客
答案是:10266837
详情见博客:第十二届蓝桥杯省赛 E:路径_AC__dream的博客-CSDN博客
试题F:时间显示
样例1输入:
46800999
样例1输出:
13:00:00
样例2输入:
1618708103123
样例2输出:
01:08:23
分析:这道题没什么好说的,需要注意的就是单位之间的换算,1s等于1000ms,还有就是注意格式输出,细节见代码:
#include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
#include<map>
#include<cmath>
#include<queue>
using namespace std;
int main()
{
long long t;
cin>>t;
t/=1000;
printf("%02d:%02d:%02d",t/3600%24,(t%3600)/60,t%60);
return 0;
}
试题G:砝码称重
样例输入:
3
1 4 6
样例输出:
10
详情见博客:(6条消息) 第十二届蓝桥杯省赛第一场C++B组真题(砝码称重)_AC__dream的博客-CSDN博客
试题H:杨辉三角形
样例输入:
6
样例输出:
13
详情见博客:(6条消息) 第十二届蓝桥杯省赛第一场C++B组真题(杨辉三角形)-CSDN博客
试题I:双向排序
样例输入:
3 3
0 3
1 2
0 2
样例输出:
3 1 2
详情参考博客:(1条消息) 第十二届蓝桥杯省赛第一场C++B组真题(双向排序)_AC__dream的博客-CSDN博客
试题J:括号序列
样例输入:
((()
样例输出:
5
详情参考博客:
第十二届蓝桥杯省赛第一场C++B组真题(括号序列)_AC__dream的博客-CSDN博客