第十二届蓝桥杯省赛详解
试题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.寻找峰值】