试题 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语言)相关推荐

  1. 2022年第十三届蓝桥杯大赛软件类国赛 C/C++ 大学B组

    试题 A: 2022 #include<bits/stdc++.h> using namespace std;typedef long long LL; LL dp[11][2023];i ...

  2. 第十三届蓝桥杯大赛软件类国赛 C/C++ 大学B组 试题 G: 故障

    试题 G: 故障 贝叶斯公式 条件概率的运用,即发生A事件的条件下,B事件发生的概率. #include<cstdio> #include<cmath> #include< ...

  3. 2022年第十三届蓝桥杯大赛软件类决赛C/C++/Java/Python真题

    1.2022年第十三届蓝桥杯大赛软件类决赛C/C++大学A组真题 2022年第十三届蓝桥杯大赛软件类决赛C/C++大学A组真题 - 题库 - C语言网 2. 2022年第十三届蓝桥杯大赛软件类决赛C/ ...

  4. 第十三届蓝桥杯大赛软件赛省赛真题

    第十三届蓝桥杯大赛软件赛省赛Java 大学 B 组 文章目录 第十三届蓝桥杯大赛软件赛省赛Java 大学 B 组 [考生须知] 试题 A: 星期计算 试题 B: 山 试题 C: 字符统计 试题 D: ...

  5. 第十三届蓝桥杯大赛软件赛省赛 Python 大学 B 组

    第十三届蓝桥杯大赛软件赛省赛 Python 大学 B 组 第十三届蓝桥杯大赛软件赛省赛 Python 大学 B 组 [考生须知] 考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试 题. ...

  6. 2022年第十三届蓝桥杯大赛软件省赛Java学B组试题

    第十三届蓝桥杯大赛软件省赛Java学B组试题 一.试题截图 1. 星期计算 这道题是可以直接用笔算起来的,我算出来的答案是5,(2022整除7 余6,六天后就是星期五)但目前官方答案还不知道是什么? ...

  7. 2022年蓝桥杯:第十三届蓝桥杯大赛软件赛省赛C/C++大学B组真题(考后回顾,文末附真题链接)

    目录 第十三届蓝桥杯大赛软件赛省赛C/C++大学B组真题(考后回顾) 试题 A: 九进制转十进制 试题 B: 顺子日期 试题 C: 刷题统计 试题 D: 修剪灌木 试题 E: X 进制减法 试题 F: ...

  8. 第十三届蓝桥杯大赛软件赛省赛 Java 研究生组

    第十三届蓝桥杯大赛软件赛省赛 Java 研究生组 [考生须知] 考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试 题. 考试时间为 4 小时.考试期间选手可浏览自己已经提交的答案,被浏 ...

  9. 第十三届蓝桥杯大赛软件赛省赛 Python 大学 C 组

    试题 A: 排列字母 本题总分:5 分 [问题描述] 小蓝要把一个字符串中的字母按其在字母表中的顺序排列. 例如,LANQIAO 排列后为 AAILNOQ. 又如,GOODGOODSTUDYDAYDA ...

最新文章

  1. C#托管代码是什么?非托管代码是什么?
  2. 【控制】《多无人机协同控制技术》周伟老师-第3章-面向协同控制的无人机单机控制
  3. 科学计算机器科学计算机,科学计算器多功能版
  4. 手机号码校验、邮箱校验
  5. 清除每隔5000毫秒请求一次接口的定时器(需求:每当我手动核销电子码,页面上的显示数据要实时更新到)...
  6. 90后渐成互联网基金销售平台的购买主力
  7. 关于for循环的javascript习题
  8. vscode编译器添加c++万能头文件
  9. 使用usb有线网卡u-boot无法ping通虚拟机
  10. 【2022第十届‘泰迪杯’挑战赛】A题:害虫识别完整版(大致思路。详细过程和代码以及结果csv在压缩包中)
  11. 2017-06-15 前端日报
  12. CephFS MDS服务 高可用
  13. 教你炒股票8:投资如选面首,G点为中心,拒绝ED男!
  14. java计算机毕业设计个人交友网站源程序+mysql+系统+lw文档+远程调试
  15. 当Forms表单遇到Power BI
  16. 计算机文档打不开是什么原因,文档打不开电脑我的文档Word突然打不开了,是怎会是啊?其他还都 爱问知识人...
  17. linux ls和ll命令学习小结
  18. 【搞定Go语言】第2天6:Go语言基础之切片
  19. 软工导论之程序流程图、N-S图(盒图)、PAD例题
  20. 关注博主即可阅读全文?不存在的

热门文章

  1. android直接gpu中取纹理数据,[Android-Camera开发]Android平台Camera实时预览数据处理即实时滤镜实现方法探讨(二)--GPUImage探讨...
  2. 标准库之正则表达式3-前后向管理
  3. java计算机毕业设计公立医院绩效考核系统MyBatis+系统+LW文档+源码+调试部署
  4. vue 高德地图 不同区域显示不同颜色_高德地图这样用成为你的图表神器
  5. 联通校园网避免检测随身wifi方法
  6. Python3读取h5,pkl,npz,npy格式的文件
  7. python fabs和abs_python – abs()vs fabs()速度差异和fabs()
  8. Android——.pem格式证书转换为.bks
  9. 【Encoder-Decoder】
  10. 【热门】女孩取名:女孩名字带歆什么寓意