2022年蓝桥杯省赛真题解析(C++B组)
2022.04.09,我第一次参加蓝桥杯,我想说今年官方为了防止作弊,可谓煞费苦心,直接启用备用卷,难度直接到国赛难度。第一次参加,却让我输的那么彻底。
目录
A九进制转十进制
B 顺子日期
C 刷题统计
D 修剪灌木
E X进制减法
F 统计子矩阵
G 积木画
H 扫雷
I 李白打酒加强版
J 砍竹子
A九进制转十进制
答案:1478
B 顺子日期
答案:4 / 14
解析:我填了4,当时我一直在想012算不算,题目说了20220123有一个顺子:123,没说是012,所以我认定它不算,那就只有20220123,20221123,20221230,20221231。注意:降序是不算顺子的。
C 刷题统计
for(50分吧)
#include <bits/stdc++.h>
#define MOD 1000000007
using namespace std;
typedef long long LL;
LL a,b,n;
int main() {int sum=0;cin>>a>>b>>n;for(LL i=1; ;i++) {if(i%7!=6 && i%7!=0) sum+=a;else sum+=b;if(sum>=n) {cout<<i;return 0;}}return 0;
}
优化(应该100)
#include <bits/stdc++.h>
#define MOD 1000000007
using namespace std;
typedef long long LL;
LL a,b,n;
int main() {cin>>a>>b>>n;LL sum=a*5+b*2;//一周的做题数LL t=n/sum;//需要t周(往下取整)LL nn=t*sum;//t周做了nn个题目if(nn>=n) cout<<t*7;else if(nn+a>=n) cout<<t*7+1;else if(nn+a*2>=n) cout<<t*7+2;else if(nn+a*3>=n) cout<<t*7+3;else if(nn+a*4>=n) cout<<t*7+4;else if(nn+a*5>=n) cout<<t*7+5;else if(nn+a*5+b>=n) cout<<t*7+6;else if(nn+a*5+b*2>=n) cout<<t*7+7;//考试时没写这句,刚刚试数据查到错的....彻底无语,大无语事件return 0;
}
D 修剪灌木
解析:我是直接用草稿纸手推出来,发现的规律,1需要特判:1。2输出2 2,3输出4 2 4,4输出6 4 4 6,5输出8 6 4 6 8……以此类推就好了,我们看到边界是最高的,然后往中间成以公差为-2递减。所以用双指针控制它即可
#include <bits/stdc++.h>
#define MOD 1000000007
using namespace std;
typedef long long LL;
int a[10005];
int n;
int main() {cin>>n;if(n==1) {cout<<1;return 0;}int s=(n-1)*2;int l=1,r=n;while(l<=r) {a[l]=a[r]=s;l++,r--;s-=2;}for(int i=1; i<=n; i++)cout<<a[i]<<endl;return 0;
}
E X进制减法
我在考场上看到好多人卡这题,主要是读不懂题,出考场时有很多人问我321怎么等于65,题目说了三个位的进制分别是8 10 2(从左到右),所以就是3 * 20 + 2 * 2 + 1 = 65,看不懂的小伙伴可以回去好好复习一下二进制或者往下看。
解析:
321的“1”是2进制,逢2进1,即“2”就意味着数字4=2*2,“2”的进制是10进制,逢10进1,也就是说对于“2”来说,“3”代表着30,而对于“1”来说“3”则代表着60=30*2。通俗的说,假如321整个树是10进制,那么对于“2”而言“3”是30,对于“1”而言,“3”是300=3*10*10.
然后,这里的最高位进制是没用的,相当于摆设。由于它说a b同一条进制系统,所以数位的进制应该是一样的,那么我们就需要一个s数组来存放当前数位应该*哪个数了
#include <bits/stdc++.h>
#define MOD 1000000007
using namespace std;
typedef long long LL;
int n,ma,mb;
LL sum,s1,s2,a[100015],b[100015],s[100015];
int main() {cin>>n;cin>>ma;for(int i=1; i<=ma; i++)cin>>a[i];cin>>mb;for(int i=ma-mb+1; i<=ma; i++)//B<=Acin>>b[i];s[ma]=1,s[ma-1]=2;//最低位固定二进制,即*1,那么前一位就*2for(int i=ma-2; i>0; i--) {s[i]=(max(a[i+1],b[i+1])+1)%MOD;//贪心,数位上的两个数取大的+1即为当前数位的进制(这里直接存放当前数位转成10进制该*的数)s[i]=(s[i]%MOD)*(s[i+1]%MOD);//取模防爆}for(int i=1; i<=ma; i++) {s1=(s1+(s[i]%MOD)*(a[i]%MOD))%MOD;//累加s2=(s2+(s[i]%MOD)*(b[i]%MOD))%MOD;}cout<<(s1-s2)%MOD;return 0;
}
F 统计子矩阵
二维前缀和,不会。。。
G 积木画
听他们说这道题在洛谷有原题,而且是用dp做,完全和他们不一样,我用斐波那契做的
解析:
这题我依旧是手推找规律。
n为1时是1 = 1 + 0 * 2;
n为2时是2 = 2 + 0 * 2;
n为3时是5 = 3 + 1 * 2;
n为4时是9 = 5 + 2 * 2;
n为5时是18 = 8 + 5 * 2;
n为6时是35 = 13 + 12 * 2;
n为7时是67 = 21 + 23 * 2;以此类推
我们发现前面的(只有I形)是斐波那契数列,后面的(有L和I型)是一个有规律的数列吧,我也不知道啥数列:2 + 3 = 5,5 + 6 = 11,11 + 12 = 23
我也不知道对不对,没管后面了,直接编程交了,然后看了一下洛谷的,发现错了。
代码就不给了,这个是错误思路,正解请移步洛谷P1990
H 扫雷
这个我好像用两个for,不知道能不能骗分,听一个小伙伴说是0分,那太好了,又错了.......
I 李白打酒加强版
dfs能骗分,考的时候没想出来
J 砍竹子
不会....
这次顶死40分,没省二咯,该退役咯~~~
2022年蓝桥杯省赛真题解析(C++B组)相关推荐
- ②【Java 组】蓝桥杯省赛真题解析 [振兴中华] [三部排序] 持续更新中...
个人简介:Java领域新星创作者:阿里云技术博主.星级博主.专家博主:正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 蓝桥杯真题--持续更新中... ...
- 2018第九届蓝桥杯省赛真题 C语言B组 第一题
标题:第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. 答案:125 可以被四百整除,所以是闰年,二 ...
- 【蓝桥杯国赛真题08】python约分 蓝桥杯青少年组python编程 蓝桥杯国赛真题解析
目录 python约分 一.题目要求 1.编程实现 2.评分标准 二.解题思路 1.案例分析
- 【蓝桥杯国赛真题05】python读数系统 蓝桥杯青少年组python编程 蓝桥杯国赛真题解析
目录 python读数系统 一.题目要求 1.编程实现 2.输入输出 3.评分标准
- 【蓝桥杯国赛真题06】python绘制菱形圆环 蓝桥杯青少年组python编程 蓝桥杯国赛真题解析
目录 python绘制菱形圆环 一.题目要求 1.编程实现 2.评分标准
- 3位水仙花数计算pythonoj_Python解答蓝桥杯省赛真题之从入门到真题
若发现此文章消失,则是在等待审核中,稍等一会儿即可显示,谢谢. 另外,我会尽量晚上上传更新题目. 此文章太长了,导致MD编辑器很卡,另写了一篇接续 传送门 Python解答蓝桥杯省赛真题之从入门到真题 ...
- 第十三届蓝桥杯国赛真题 PythonB组 复盘以及获奖感言(国一!!!)
第十三届蓝桥杯国赛真题 PythonB组 复盘以及获奖感言(国一) 文章目录 第十三届蓝桥杯国赛真题 PythonB组 复盘以及获奖感言(国一)
- 2017年第四八届C/C++ B组蓝桥杯省赛真题
2017年第八届C/C++ B组蓝桥杯省赛真题 真题 第一题:购物单 第二题:等差素数列 第三题:承压计算 第四题:方格分割 第五题:取数位 第六题:最大公共子串 第七题:日期问题 第八题:包子凑数 ...
- 2018年第九届C/C++ A组蓝桥杯省赛真题(python解法)
2018年第九届C/C++ A组蓝桥杯省赛真题 第一题:哪天返回 题目描述 小明被不明势力劫持.后莫名其妙被扔到x星站再无问津.小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文. 他 ...
最新文章
- “干掉” Date,Java8 LocalDate 真香!
- vue 时间安排表
- socket可以写成单例嘛_精读《设计模式 - Singleton 单例模式》
- 【组合数学】排列组合 ( 集合排列、分步处理示例 )
- python函数高级运用
- linux中的umask命令
- C#数据类型转换—使用Convert类转换
- 分享几个亲测有效的高效工作技巧
- 一壶 100℃ 的开水从多高倒进嘴里不会觉得烫?
- AutoLayout--masonry使用
- 19-6/28作业:100以内偶数求和
- AI赋能DevOps:数据驱动的全栈工程师实践
- 百度android定位 602 key mcode不匹配,我的Android进阶之旅------百度地图学习:BDLocation.getLocType ( )值分析...
- ./configure,make,make install 的作用
- 学习笔记 第六周 第一篇
- Zotero及部分常用插件安装和使用教程
- Riemann问题精确解及程序实现
- js如何复制一个对象?
- c语言怎么加中文注释,谁能对我的C语言程序作出中文注释
- webservice 常用接口