第十三届蓝桥杯大赛软件赛省赛(b组c语言)
试题 A: 九进制转十进制
本题总分:5 分
【问题描述】
九进制正整数 (2022)9 转换成十进制等于多少?
这道题没什么说的,2*9*9*9+0*9*9+2*9+2*1=1478;
试题 B: 顺子日期
本题总分:5 分
【问题描述】
小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456 等。顺子日
期指的就是在日期的 yyyymmdd 表示法中,存在任意连续的三位数是一个顺
子的日期。例如 20220123 就是一个顺子日期,因为它出现了一个顺子:123;
而 20221023 则不是一个顺子日期,它一个顺子也没有。小明想知道在整个 2022
年份中,一共有多少个顺子日期。
这道题我感觉有歧义,因为我在写的时候不懂出题人怎么想的,012按照题目的说法应该也算,但是为什么20220123出现的不是两个顺子呢?
这个用笔写就好了,很快,如果012也算的话应该是14个,否则就是4个,分别是20220123,20221123,20221230,20221231.
我就写了四个,不知道老师按哪个改了。
试题 C: 刷题统计
时间限制: 1.0s
内存限制: 256.0MB
本题总分:10 分
【问题描述】
小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天
做 a 道题目,周六和周日每天做 b 道题目。请你帮小明计算,按照计划他将在
第几天实现做题数大于等于 n 题?
【输入格式】
输入一行包含三个整数 a, b 和 n.
【输出格式】
输出一个整数代表天数。
【样例输入】
10 20 99
【样例输出】
8
#include<stdio.h>
int main(){
int a,b,n,ans,sum,i,w;
scanf("%d%d%d",&a,&b,&n);
sum=0;
w=1;
for(i=1;;i++){
if(w<=5){
sum+=a;
}
else{
sum+=b;
}
if(sum>=n){
printf("%d",i);
break;
}
w++;
if(w>7){
w=1;
}
}
return 0;
}
这题比计蒜客的阴历阳历放假要简单,只要考虑好一周的循环就好。
试题 D: 修剪灌木
时间限制: 1.0s
内存限制: 256.0MB
本题总分:10 分
【问题描述】
爱丽丝要完成一项修剪灌木的工作。
有 N 棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晚会修剪一棵灌
木,让灌木的高度变为 0 厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始,
每天向右修剪一棵灌木。当修剪了最右侧的灌木后,她会调转方向,下一天开
始向左修剪灌木。直到修剪了最左的灌木后再次调转方向。然后如此循环往复。
灌木每天从早上到傍晚会长高 1 厘米,而其余时间不会长高。在第一天的
早晨,所有灌木的高度都是 0 厘米。爱丽丝想知道每棵灌木最高长到多高。
【输入格式】
一个正整数 N ,含义如题面所述。
【输出格式】
输出 N 行,每行一个整数,第行表示从左到右第 i 棵树最高能长到多高。
【样例输入】
3
【样例输出】
4
2
4
#include<stdio.h>
char s[20];
int main(){
int n,i;
scanf("%d",&n);
for(i=1;i<=n;i++){
if(i<=n/2){
s[i]=(n-i)*2;
}
else{
s[i]=(i-1)*2;
}
}
for(i=1;i<=n;i++){
printf("%d\n",s[i]);
}
return 0;
}
这道题我们画几个就可以发现规律,在前半部分的最长其实就是他剩余部分的两倍,后半部分也是这样。
试题 E: X 进制减法
时间限制: 1.0s
内存限制: 256.0MB
本题总分:15 分
【问题描述】
进制规定了数字在数位上逢几进一。
X 进制是一种很神奇的进制,因为其每一数位的进制并不固定!例如说某
种 X 进制数,最低数位为二进制,第二数位为十进制,第三数位为八进制,则
X 进制数 321 转换为十进制数为 65。
现在有两个 X 进制表示的整数 A 和 B,但是其具体每一数位的进制还不确
定,只知道 A 和 B 是同一进制规则,且每一数位最高为 N 进制,最低为二进
制。请你算出 A − B 的结果最小可能是多少。
请注意,你需要保证 A 和 B 在 X 进制下都是合法的,即每一数位上的数
字要小于其进制。
【输入格式】
第一行一个正整数 N,含义如题面所述。
第二行一个正整数 Ma,表示 X 进制数 A 的位数。
第三行 Ma 个用空格分开的整数,表示 X 进制数 A 按从高位到低位顺序各
个数位上的数字在十进制下的表示。
第四行一个正整数 Mb,表示 X 进制数 B 的位数。
第五行 Mb 个用空格分开的整数,表示 X 进制数 B 按从高位到低位顺序各
个数位上的数字在十进制下的表示。
请注意,输入中的所有数字都是十进制的。
【输出格式】
输出一行一个整数,表示 X 进制数 A − B 的结果的最小可能值转换为十进
制后再模 1000000007 的结果。
试题E: X进制减法
6第十三届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组
【样例输入】
11
3
10 4 0
3
1 2 0
【样例输出】
94
#include<stdio.h>
#include<math.h>
int max(int a,int b){
if(a>=b&&a>2){
return a+1;
}
else if(b>2&&b>a){
return b+1;
}
else{
return 2;
}
}
char a[20];
char b[20];
char m[20];
int main(){
int n,ma,mb,i,jg,sum,sum1,m1,m2,j;
int s[20]={1,1,1,1,1};
m1=1;
m2=1;
sum=0;
sum1=0;
scanf("%d",&n);
scanf("%d",&ma);
for(i=0;i<ma;i++){
scanf("%d",&a[i]);
}
scanf("%d",&mb);
for(i=0;i<mb;i++){
scanf("%d",&b[i]);
}
for(i=0;i<ma;i++){
m[i]=max(a[i],b[i]);
//printf("%d\n",m[i]);
}
for(i=0;i<ma;i++){
for(j=i+1;j<ma;j++){
s[i]*=m[j];
}
}
for(i=0;i<ma;i++){
sum+=(a[i]*s[i]);
sum1+=(b[i]*s[i]);
}
jg=sum-sum1;
printf("%d",jg);
return 0;
}
这道题我感觉我写的复杂了,可能时间复杂度会高些。
题目要求我们找到最小的A-B最小的结果,根据X进制要求我们只需要找到A和B相同位数的最大值即可,注意不能小于2,然后相乘即可。
试题 F: 统计子矩阵
时间限制: 1.0s
内存限制: 256.0MB
本题总分:15 分
【问题描述】
给定一个 N × M 的矩阵 A,请你统计有多少个子矩阵 (最小 1 × 1,最大
N × M) 满足子矩阵中所有数的和不超过给定的整数 K?
【输入格式】
第一行包含三个整数 N, M 和 K.
之后 N 行每行包含 M 个整数,代表矩阵 A.
【输出格式】
一个整数代表答案。
【样例输入】
3 4 10
1 2 3 4
5 6 7 8
9 10 11 12
【样例输出】
19
【样例说明】
满足条件的子矩阵一共有 19,包含:
大小为 1 × 1 的有 10 个。
大小为 1 × 2 的有 3 个。
试题 F: 统计子矩阵
8第十三届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组
大小为 1 × 3 的有 2 个。
大小为 1 × 4 的有 1 个。
大小为 2 × 1 的有 3 个
#include<stdio.h>
char s[20][20];
int main(){
int m,n,k,sum,ans,i,j,w,q,ans1,ans2;
ans1=0;
sum=0;
ans=0;
ans2=0;
scanf("%d%d%d",&m,&n,&k);
for(i=0;i<m;i++){
for(j=0;j<n;j++){
scanf("%d",&s[i][j]);
}
}
for(i=0;i<m;i++){
for(j=0;j<n;j++){
//sum=0;
for(w=i;w<m;w++){
sum=0;
for(q=j;q<n;q++){
sum+=s[w][q];
if(sum<=k){
ans++;
}
}
}
} break;
}
for(j=0;j<n;j++){
for(i=0;i<m;i++){
//sum=0;
for(q=j;q<n;q++){
sum=0;
for(w=i;w<m;w++){
sum+=s[w][q];
if(sum<=k){
ans1++;
}
}
}
} break;
}
for(i=0;i<m;i++){
for(j=0;j<n;j++){
if(s[i][j]<=k){
ans2++;
}
}
}
printf("%d",ans+ans1-ans2);
return 0;
}
这道题有点难,考试就不会了,(我实属菜鸡)现在写出来的也不知道能不能在规定时间跑出来。
主要要注意sum=0的位置。
试题 G: 积木画
时间限制: 1.0s
内存限制: 256.0MB
本题总分:20 分
【问题描述】
小明最近迷上了积木画,有这么两种类型的积木,分别为 I 型(大小为 2
个单位面积)和 L 型(大小为 3 个单位面积):
同时,小明有一块面积大小为 2 × N 的画布,画布由 2 × N 个 1 × 1 区域构
成。小明需要用以上两种积木将画布拼满,他想知道总共有多少种不同的方式?
积木可以任意旋转,且画布的方向固定。
【输入格式】
输入一个整数 N,表示画布大小。
【输出格式】
输出一个整数表示答案。由于答案可能很大,所以输出其对 1000000007 取
模后的值
#include<stdio.h>
int maxn=10000;
long mod=1000000007;
int main(){
int i,n;
char f[maxn];
char g[maxn];
f[0]=1;
f[1]=1;
f[2]=2;
g[0]=0;
g[1]=1;
//char f[maxn];
//char g[maxn];
scanf("%d",&n);
for(i=2;i<=n;i++){
f[i]=f[i-1]%mod+f[i-2]%mod+2*g[i-2]%mod;
g[i]=f[i-1]%mod+g[i-1]%mod;
}
printf("%d",f[n]);
return 0;
}
这题代码量少了很多,但是我感觉这个dp 动态规划还是很难的,后来看了其他大佬的写法才慢慢想明白(属实不易)这题难就难在三个角的形状怎么弄,后来又听说洛谷有差不多的题还是原题。
试题 H: 扫雷
时间限制: 1.0s
内存限制: 256.0MB
本题总分:20 分
【问题描述】
小明最近迷上了一款名为《扫雷》的游戏。其中有一个关卡的任务如下,
在一个二维平面上放置着 n 个炸雷,第 i 个炸雷 (xi, yi,ri) 表示在坐标 (xi, yi) 处
存在一个炸雷,它的爆炸范围是以半径为 ri 的一个圆。
为了顺利通过这片土地,需要玩家进行排雷。玩家可以发射 m 个排雷火
箭,小明已经规划好了每个排雷火箭的发射方向,第 j 个排雷火箭 (xj, yj,rj) 表
示这个排雷火箭将会在 (xj, yj) 处爆炸,它的爆炸范围是以半径为 rj 的一个圆,
在其爆炸范围内的炸雷会被引爆。同时,当炸雷被引爆时,在其爆炸范围内的
炸雷也会被引爆。现在小明想知道他这次共引爆了几颗炸雷?
你可以把炸雷和排雷火箭都视为平面上的一个点。一个点处可以存在多个
炸雷和排雷火箭。当炸雷位于爆炸范围的边界上时也会被引爆。
【输入格式】
输入的第一行包含两个整数 n、m.
接下来的 n 行,每行三个整数 xi, yi,ri,表示一个炸雷的信息。
再接下来的 m 行,每行三个整数 xj, yj,rj,表示一个排雷火箭的信息。
【输出格式】
输出一个整数表示答案
#include<stdio.h>
#include<math.h>
int res=0;
int n;
struct boom{
double x;//n雷m火箭
double y;
double r;
int k;
}a[10086];
int xiu(int x,int y,int r){
int i;
for(i=0;i<n;i++){
if(pow(a[i].x-x,2)+pow(a[i].y-y,2)<=pow(r,2)&&a[i].k==0){
res++;
a[i].k=1;
xiu(a[i].x,a[i].y,a[i].r);
}
}
}
int main(){
int m,i,x,y,r;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++){
scanf("%lf%lf%lf",&a[i].x,&a[i].y,&a[i].r);
a[i].k=0;
}
for(i=0;i<m;i++){
scanf("%d%d%d",&x,&y,&r);
xiu(x,y,r);
}
printf("%d",res);
return 0;
}
这道题巧用递归
试题 I: 李白打酒加强版
时间限制: 1.0s
内存限制: 256.0MB
本题总分:25 分
【问题描述】
话说大诗人李白,一生好饮。幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒 2 斗。他边走边唱:
无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店 N 次,遇到花 M 次。已知最后一次遇到的是花,
他正好把酒喝光了。
请你计算李白这一路遇到店和花的顺序,有多少种不同的可能?
注意:壶里没酒 ( 0 斗) 时遇店是合法的,加倍后还是没酒;但是没酒时遇
花是不合法的。
【输入格式】
第一行包含两个整数 N 和 M.
【输出格式】
输出一个整数表示答案。由于答案可能很大,输出模 1000000007 的结果。
#include<stdio.h>
int ans=0;
long long e=10e9+7;
int main(){
int n,m;//n*2,m-1
scanf("%d%d",&n,&m);
fun(2,n,m-1);
printf("%d",ans%e);
return 0;
}
void fun(int x,int n,int m){
if(x==1&&n==0&&m==0)
{
ans++;
}
if(n>0)
{
fun(x*2,n-1,m);
}
if(m>0)
{
fun(x-1,n,m-1);
}
}
接着递归 ,参照其他大佬的(菜鸡属实不易)
试题 J: 砍竹子
时间限制: 1.0s
内存限制: 256.0MB
本题总分:25 分
【问题描述】
这天,小明在砍竹子,他面前有 n 棵竹子排成一排,一开始第 i 棵竹子的
高度为 hi.
他觉得一棵一棵砍太慢了,决定使用魔法来砍竹子。魔法可以对连续的一
段相同高度的竹子使用,假设这一段竹子的高度为
H,那么使用一次魔法可以
把这一段竹子的高度都变为 ⌊ √⌊ H
2 ⌋ + 1⌋,其中 ⌊x⌋ 表示对
x
向下取整。小明想
知道他最少使用多少次魔法可以让所有的竹子的高度都变为
1
这题我觉得应该还是先用几个数组来找到连续一段相同的,太难了。
第十三届蓝桥杯大赛软件赛省赛(b组c语言)相关推荐
- 2022年第十三届蓝桥杯大赛软件类国赛 C/C++ 大学B组
试题 A: 2022 #include<bits/stdc++.h> using namespace std;typedef long long LL; LL dp[11][2023];i ...
- 第十三届蓝桥杯大赛软件类国赛 C/C++ 大学B组 试题 G: 故障
试题 G: 故障 贝叶斯公式 条件概率的运用,即发生A事件的条件下,B事件发生的概率. #include<cstdio> #include<cmath> #include< ...
- 2022年第十三届蓝桥杯大赛软件类决赛C/C++/Java/Python真题
1.2022年第十三届蓝桥杯大赛软件类决赛C/C++大学A组真题 2022年第十三届蓝桥杯大赛软件类决赛C/C++大学A组真题 - 题库 - C语言网 2. 2022年第十三届蓝桥杯大赛软件类决赛C/ ...
- 第十三届蓝桥杯大赛软件赛省赛真题
第十三届蓝桥杯大赛软件赛省赛Java 大学 B 组 文章目录 第十三届蓝桥杯大赛软件赛省赛Java 大学 B 组 [考生须知] 试题 A: 星期计算 试题 B: 山 试题 C: 字符统计 试题 D: ...
- 第十三届蓝桥杯大赛软件赛省赛 Python 大学 B 组
第十三届蓝桥杯大赛软件赛省赛 Python 大学 B 组 第十三届蓝桥杯大赛软件赛省赛 Python 大学 B 组 [考生须知] 考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试 题. ...
- 2022年第十三届蓝桥杯大赛软件省赛Java学B组试题
第十三届蓝桥杯大赛软件省赛Java学B组试题 一.试题截图 1. 星期计算 这道题是可以直接用笔算起来的,我算出来的答案是5,(2022整除7 余6,六天后就是星期五)但目前官方答案还不知道是什么? ...
- 2022年蓝桥杯:第十三届蓝桥杯大赛软件赛省赛C/C++大学B组真题(考后回顾,文末附真题链接)
目录 第十三届蓝桥杯大赛软件赛省赛C/C++大学B组真题(考后回顾) 试题 A: 九进制转十进制 试题 B: 顺子日期 试题 C: 刷题统计 试题 D: 修剪灌木 试题 E: X 进制减法 试题 F: ...
- 第十三届蓝桥杯大赛软件赛省赛 Java 研究生组
第十三届蓝桥杯大赛软件赛省赛 Java 研究生组 [考生须知] 考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试 题. 考试时间为 4 小时.考试期间选手可浏览自己已经提交的答案,被浏 ...
- 第十三届蓝桥杯大赛软件赛省赛 Python 大学 C 组
试题 A: 排列字母 本题总分:5 分 [问题描述] 小蓝要把一个字符串中的字母按其在字母表中的顺序排列. 例如,LANQIAO 排列后为 AAILNOQ. 又如,GOODGOODSTUDYDAYDA ...
最新文章
- C#托管代码是什么?非托管代码是什么?
- 【控制】《多无人机协同控制技术》周伟老师-第3章-面向协同控制的无人机单机控制
- 科学计算机器科学计算机,科学计算器多功能版
- 手机号码校验、邮箱校验
- 清除每隔5000毫秒请求一次接口的定时器(需求:每当我手动核销电子码,页面上的显示数据要实时更新到)...
- 90后渐成互联网基金销售平台的购买主力
- 关于for循环的javascript习题
- vscode编译器添加c++万能头文件
- 使用usb有线网卡u-boot无法ping通虚拟机
- 【2022第十届‘泰迪杯’挑战赛】A题:害虫识别完整版(大致思路。详细过程和代码以及结果csv在压缩包中)
- 2017-06-15 前端日报
- CephFS MDS服务 高可用
- 教你炒股票8:投资如选面首,G点为中心,拒绝ED男!
- java计算机毕业设计个人交友网站源程序+mysql+系统+lw文档+远程调试
- 当Forms表单遇到Power BI
- 计算机文档打不开是什么原因,文档打不开电脑我的文档Word突然打不开了,是怎会是啊?其他还都 爱问知识人...
- linux ls和ll命令学习小结
- 【搞定Go语言】第2天6:Go语言基础之切片
- 软工导论之程序流程图、N-S图(盒图)、PAD例题
- 关注博主即可阅读全文?不存在的
热门文章
- android直接gpu中取纹理数据,[Android-Camera开发]Android平台Camera实时预览数据处理即实时滤镜实现方法探讨(二)--GPUImage探讨...
- 标准库之正则表达式3-前后向管理
- java计算机毕业设计公立医院绩效考核系统MyBatis+系统+LW文档+源码+调试部署
- vue 高德地图 不同区域显示不同颜色_高德地图这样用成为你的图表神器
- 联通校园网避免检测随身wifi方法
- Python3读取h5,pkl,npz,npy格式的文件
- python fabs和abs_python – abs()vs fabs()速度差异和fabs()
- Android——.pem格式证书转换为.bks
- 【Encoder-Decoder】
- 【热门】女孩取名:女孩名字带歆什么寓意