第十二届蓝桥杯省赛详解
试题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
这道题目细节比较多,讲解见链接:
试题D:货物摆放
答案:2430
详情见博客:
答案是:10266837
详情见博客:
试题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
详情见博客:
试题H:杨辉三角形
样例输入:
6
样例输出:
13
详情见博客:
试题I:双向排序
样例输入:
3 3 0 3 1 2 0 2
样例输出:
3 1 2
详情参考博客:
试题J:括号序列
样例输入:
((()
样例输出:
5
详情参考博客:
上一篇:
92天倒计时,蓝桥杯省赛备赛攻略来啦~
下一篇:
【剑指offer|6.寻找峰值】
