第十三届蓝桥杯(C/C++ 大学B组)

目录

试题 A: 九进制转十进制

试题 B: 顺子日期

试题 C: 刷题统计

试题 D: 修剪灌木

试题 E: X 进制减法

试题 F: 统计子矩阵

试题 G: 积木画

试题 H: 扫雷

试题  I: 李白打酒加强版

试题 J: 砍竹子


试题 A: 九进制转十进制

九进制正整数 ( 2022 )转换成十进制等于多少?

#include <bits/stdc++.h>
using namespace std;int main()
{int c, ans = 0;while (c = getchar(), '0' <= c && c <= '9')ans = ans * 9 + c - '0';cout<<ans<<endl; //1478return 0;
}

试题 B: 顺子日期

小明特别喜欢顺子。顺子指的就是连续的三个数字: 123 、 456 等。顺子日期指的就是在日期的 yyyymmdd表示法中,存在任意连续的三位数是一个顺子的日期。例如 20220123 就是一个顺子日期,因为它出现了一个顺子:123;而 20221023则不是一个顺子日期,它一个顺子也没有。小明想知道在整个 2022 年份中,一共有多少个顺子日期。

#include <bits/stdc++.h>using namespace std;
int date1[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};    //确定2022年的每月的天数
int main()
{int b[8];                              //b[0]到b[4]表示的是2022年b[0] = 2;b[1] = 0;        b[2] = 2;b[3] = 2;int sum = 0;for (int i = 1; i <= 12; i++)         //从一月到12月{b[4] = i / 10;                //月数的高位b[5] = i % 10;                //月数的低位for (int j = 1; j <= date1[i]; j++)   //从每月的第一天到最后一天{b[6] = j / 10;                //表示天数的高位b[7] = j % 10;                //表示天数的低位if ((b[4] + 1 == b[5] && b[5] + 1 == b[6]) || (b[5] + 1 == b[6] && b[6] + 1 == b[7]))  //如果是顺子日期就+1{sum++;}}}cout << sum << endl;return 0;
}

试题 C: 刷题统计

小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a道题目,周六和周日每天做 b道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n题?

输入格式:输入一行包含三个整数a,b和n。

输出格式:输出一个整数代表天数。

样例输入:10 20 99

样例输出:8

#include <bits/stdc++.h>
using namespace std;int main()
{long long a,b,n,ans;cin>>a>>b>>n; ans = n / (5 * a + 2 * b) * 7;n %= 5 * a + 2 * b;if (n > 5 * a)ans += 5 + ((n - 5 * a) + b - 1) / b;elseans += (n + a - 1) / a;cout<<ans<<endl;return 0;
}

试题 D: 修剪灌木

爱丽丝要完成一项修剪灌木的工作。

  有 N 棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晚会修剪一棵灌木,让灌木的高度变为 0  厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始,每天向右修剪一棵灌木。当修剪了最右侧的灌木后,她会调转方向,下一天开始向左修剪灌木。直到修剪了最左的灌木后再次调转方向。然后如此循环往复。

  灌木每天从早上到傍晚会长高 1 厘米,而其余时间不会长高。在第一天的早晨,所有灌木的高度都是 0 厘米。爱丽丝想知道每棵灌木最高长到多高。

输入格式:一个正整数N,含义如题面所述。

输出格式:输出N行,每行一个整数,表示从左到右第i棵树最高能长到多高。

样例输入:3

样例输出:

4

2

4

#include <bits/stdc++.h>
using namespace std;int n,a[10005];int main()
{int n;cin>>n;for(int i = 1;i <= n;i++){cout<<max(2*(i-1),2*(n-i))<<endl;}return 0;
}

试题 E: X 进制减法

进制规定了数字在数位上逢几进一。

  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的结果。

样例输入:

11
3
10 4 0
3
1 2 0

样例输出:

94
#include <bits/stdc++.h>
using namespace std;const int vinf = 100010;
const int mod = 1000000007;
typedef long long ll;
int a[vinf],b[vinf];
int weights[vinf];	//单个位数上的权值 
ll ans; int main()
{/*例如:3 的进制为8,2的进制为10,1的进制为23 2  18 10 2			1 + 2 * 2 + 3 * 10 * 2 = 6510 4 011 5 2			0 + 4 * 2 + 10 * 5 * 2 = 108当进制为:最低位 2 进制,第二数位 5 进制,第三数位 11 进制时,减法得到的差最小。*/int N;	//最大进制数cin>>N;int na,nb;cin>>na;for(int i = na;i >= 1;i--) //从高位开始输入 cin>>a[i];cin>>nb;for(int i = nb; i >= 1;i--)cin>>b[i]; //选取位数多的int max_num = max(na,nb);	//计算每一位上的权值for(int i = 1;i <= max_num;i++)weights[i] = max(max(a[i], b[i]) + 1, 2);//计算两个数字的按权展开的和ll A = 0, B = 0;for(int i = na;i >= 1;i--)A = (A * weights[i] + a[i]) % mod;for(int i = nb;i >= 1;i--)B = (B * weights[i] + b[i]) % mod;	ans = (A - B) % mod;cout<<ans<<endl;return 0;
}

试题 F: 统计子矩阵

给定一个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
#include <bits/stdc++.h>
using namespace std;const int MAX = 501;
typedef long long ll;
int area[MAX][MAX];
ll ans = 0;int main()
{int n,m,k;cin>>n>>m>>k;for(int i = 1;i <= n;i++){for(int j = 1;j <= m;j++){cin>>area[i][j];area[i][j] += area[i-1][j]; //前缀和 }}//滑动窗口算法for(int start = 1;start <= n;start++) //起始行 {for(int end = start;end <= n;end++) //最终行 {//滑动窗口的边界 int l = 1,r = 1,sum = 0;for(;r <= m;r++){//扩大窗口 sum += area[end][r] - area[start - 1][r];while(sum > k){//缩小窗口 sum -= area[end][l] - area[start - 1][l];//左边界右移 l++;}//算数 ans += r - l + 1;}}}cout<<ans<<endl;return 0;
}

试题 G: 积木画

样例输入:

3

样例输出:

5
#include <bits/stdc++.h>
using namespace std;typedef long long ll;
const int mod = 1e9+7;
const int m = 10000000;
int f[m][3];
ll n;int main()
{cin.tie(0),cout.tie(0);ios::sync_with_stdio(false);//设f[i][0]表示当前拼完了前i列的方案数,//f[i][1]表示当前拼完了前i-1列,且第i列拼完了上面方格的方案数,//f[i][2]表示当前拼完了前i-1列,且当前第i列拼完了下面方格的方案数。f[0][0] = 1;cin>>n;for(int i = 1;i <= n;i++){f[i][0] = (f[i-1][0] + f[i-1][1] + f[i-1][2]) % mod;if(i >= 2){f[i][0] = (f[i][0] + f[i-2][0]) % mod;f[i][1] = (f[i-1][2] + f[i-2][0]) % mod;f[i][2] = (f[i-1][1] + f[i-2][0]) % mod;}}cout<<f[n][0];return 0;
}

试题 H: 扫雷

样例输入:

2 1
2 2 4
4 4 2
0 0 5

样例输出:

2
#include <bits/stdc++.h>
using namespace std;typedef long long ll;
const int M = 999997;
const ll Base = 1e9 + 7;
int hash[M];	//哈希值,用于维护find函数 
int num[M];	//当前位置有多少个炸弹 
int radius[M];	//当前位置的半径 
int visited[M];	//是否访问过 
int res;//降维
ll get_key(int x,int y)
{return x * Base + y;
}
//哈希函数
int find(int x)
{int t = (x % M + M) % M;while(hash[t] != -1 && hash[t] != x){t++;while(t == M) t = 0;}return t;
} 
//判断是否在范围内
bool judge(int x,int y,int r,int x2,int y2)
{int d = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);return d <= r * r;
} void dfs(int x,int y,int r)
{for(int i = -r;i <= r;i++){for(int j = -r;j <= r;j++){int dx = x + i;int dy = y + j;int k = get_key(dx,dy);int t = find(k);while(hash[t] && judge(x,y,r,dx,dy) && !visited[t]){res += num[t];			//答案加上该点地雷个数visited[t] = 1;dfs(dx,dy,radius[t]);	//搜索下一个点}}}
}int main()
{cin.tie(0),cout.tie(0);ios::sync_with_stdio(false);int n,m;cin>>n>>m;memset(hash,-1,sizeof hash);for(int i = 0;i < n;i++){int x,y,r;cin>>x>>y>>r;int k = get_key(x,y);int t = find(k);hash[t] = k;num[t]++;		 //统计该点地雷数量radius[t] = max(r,radius[t]);	//记录该点地雷半径的最大值}for(int i = 0;i < m;i++){int x,y,r;cin>>x>>y>>r;dfs(x,y,r);	//从每一个排雷火箭引爆点开始dfs}cout<<res;return 0;
}

试题  I: 李白打酒加强版

样例输入:

5 10

样例输出:

14
#include <bits/stdc++.h>
using namespace std;int mod = 1e9 + 7;
int dp[101][101][101];int main()
{cin.tie(0),cout.tie(0);ios::sync_with_stdio(false);int n,m;cin>>n>>m;dp[0][0][2] = 1;for(int i = 0;i <= n;i++)for(int j = 0;j <= m;j++)for(int k = 0;k <= m;k++){//遇到花if(j && k) dp[i][j][k] = (dp[i][j][k] + dp[i][j-1][k+1]) % mod;//遇到店 if(i && k % 2 == 0) dp[i][j][k] = (dp[i][j][k] + dp[i-1][j][k/2]) % mod;}//最后一次需要是花 cout<<dp[n][m-1][1];return 0;
}

试题 J: 砍竹子

样例输入:

6
2 1 4 2 6 7

样例输出:

5
#include <bits/stdc++.h>
using namespace std;typedef long long ll;
struct Node
{ll h;int idx;bool operator <(const Node &rhs) const{if(h == rhs.h) return idx > rhs.idx; //索引升序 return h < rhs.h; //高度降序 }
};
priority_queue<Node> q;
int ans;int main()
{cin.tie(0),cout.tie(0);ios::sync_with_stdio(false);int n,h;cin>>n;for(int i = 1;i <= n;i++) {cin>>h;q.push((Node){h,i});}while(!q.empty()){Node node = q.top();q.pop();if(node.h == 1) continue;while(!q.empty() && q.top().h == node.h && q.top().idx == node.idx + 1){node.idx = q.top().idx;q.pop();}node.h = sqrtl(node.h / 2 + 1);if(node.h > 1) q.push(node);ans++;}cout<<ans;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2868991.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

C语言例:设 int x=100; 则表达式 x++>100?x+20:x+10 的值

代码如下&#xff1a; #include<stdio.h> int main(void) {int x100, y;y x>100?x20:x10;printf("表达式x>100?x20:x10 的值为&#xff1a;%d\n",y); //111printf("x %d\n",x); //101return 0; } //三目逻辑运算符&#xff0c;条件…

基于springboot实现酒店客房管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现酒店客房管理平台系统演示 摘 要 随着人们的物质水平的提高&#xff0c;旅游业和酒店业发展的速度越来越快。近年来&#xff0c;市面上酒店的数量和规模都在不断增加&#xff0c;如何提高酒店的管理效率和服务质量成为了一个重要的问题。伴随着信息技术的发…

记一次实战项目所学(JWT篇)

记一次实战项目所学&#xff08;JWT篇&#xff09; 5. 登录验证功能 先获取公钥准备将前端输入的进行加密 //获得公钥GetMapping("/rsa-pks")public JsonResponse<String> getRsaPublicKey(){String publicKeyStr RSAUtil.getPublicKeyStr();return new Js…

基于springboot+vue实现艺术水平考级报名系统【项目源码+论文说明】计算机毕业设计

基于springbootvue实现艺术水平考级报名系统演示 摘要 本次毕业设计基于SpringBoot框架开发了一款艺术水平考级报名管理系统。该系统为考生提供了线上报名、准考证管理等核心功能&#xff0c;并为系统管理员提供了在线发布考试信息、对报名考生进行审核等管理功能。通过该系统…

数据安全之认识数据库加密系统

文章目录 一、什么是数据库加密系统二、数据库加密系统的工作原理三、数据库加密系统的核心功能四、数据库加密系统的特点和优势五、数据库加密系统的部署方式1、在线透明部署2、旁路代理模式 六、数据库加密系统的应用场景 数据库作为计算机信息系统的核心组成部分&#xff0c…

Java-并发编程--ThreadLocal、InheritableThreadLocal

1.ThreadLocal 作用 作用&#xff1a;为变量在线程中都创建副本&#xff0c;线程可访问自己内部的副本变量。该类提供了线程局部 (thread-local) 变量&#xff0c;访问这个变量&#xff08;通过其 get 或 set 方法&#xff09;的每个线程都有自己的局部变量&#xff0c;它独立…

vuex购物车案例

store/index.js // 导入vue import Vue from vue // 导入vuex import Vuex from vueximport cart from ./module/cartVue.use(Vuex)// 创建仓库store const store new Vuex.Store({strict: true,modules: {cart} })// 导出仓库 export default storestore/modules/cart impo…

外包干了28天,技术退步明显......

说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入深圳某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&a…

python-在图片上标实心圆点

代码&#xff1a; from PIL import Image, ImageDraw# 打开图像 image_path path_to_your_image.jpg image Image.open(image_path)# 创建一个可以在上面绘图的对象 draw ImageDraw.Draw(image)# 设置圆点的坐标和颜色 x 100 # 圆点的x坐标 y 100 # 圆点的y坐标 color …

电商系统秒杀一 秒杀的各种解决方案以及存在的问题

一 业务场景介绍 1.1 正常电商流程 1.2 活动和场次关系 秒杀活动表&#xff1a;sms_flash_promotion DROP TABLE IF EXISTS sms_flash_promotion; CREATE TABLE sms_flash_promotion (id bigint(20) NOT NULL AUTO_INCREMENT,title varchar(200) CHARACTER SET utf8 COLLAT…

【C语言步行梯】各类操作符、类型转换与原码、反码、补码详谈

&#x1f3af;每日努力一点点&#xff0c;技术进步看得见 &#x1f3e0;专栏介绍&#xff1a;【C语言步行梯】专栏用于介绍C语言相关内容&#xff0c;每篇文章将通过图片代码片段网络相关题目的方式编写&#xff0c;欢迎订阅~~ 文章目录 算术运算符原码、反码、补码介绍移位运算…

sparksession对象简介

什么是sparksession对象 spark2.0之后&#xff0c;sparksession对象是spark编码的统一入口对象&#xff0c;通常我们在rdd编程时&#xff0c;需要SparkContext对象作为RDD编程入口&#xff0c;但sparksession对象既可以作为RDD编程对象入口&#xff0c;在sparkcore编程中可以通…

react可视化编辑器 第二章 自由拖动

完整代码 这里介绍 currentDiv 和 useRef的俩中用法&#xff0c;看自己需求使用 import React, {useState,DragEvent,useRef,useEffect,MouseEvent, } from react;interface Demo {id: number;x: number;y: number; }const App: React.FC () > {const [demos, setDemos] u…

RabbitMQ学习总结-基础篇

1..RabbitMQ 本身是一个消息中间件&#xff0c;在服务应用中&#xff0c;可解决高性能&#xff0c;高并发&#xff0c;高应用的问题&#xff0c;极大程度上解决了应用的性能问题。 2.MQ的使用分为生产者和消费者&#xff0c;生产者生产消息&#xff0c;消费者去消费消息。 3.…

管理类联考–复试–政治--二十大--记忆宫殿

文章目录 整体记忆宫殿门床头柜床书桌阳台 口诀记忆法 整体 记忆宫殿 要有逻辑的放到房间了 何为逻辑&#xff0c;如下大佬总结的便是&#xff0c;或者可自行总结&#xff0c;有前后顺序&#xff0c;做事逻辑即可 第一步&#xff1a;将逻辑的点放到房间里的点&#xff0c;…

从零开始搭建游戏服务器 第二节 Actor模型与应用

目录 复习本节内容正文什么是Actor模型如何应用创建Actor基类创建RootActor创建AkkaContext创建ConnectActorManager和ConnectActor生成actor并发送消息给它 课后作业结尾 复习 上一节我们使用gradle构建了一个多模块系统。 并且在登录服启动了Netty服务&#xff0c;监听confi…

渗透测试框架权限维持技术——Persistence模块

测试环境&#xff1a; kali win7 测试步骤&#xff1a; 1.利用MSF编写远控程序 msfvenom -p windows/meterpreter/reverse_tcp lhost10.0.0.163 lport55555 -f exe -o 5555.exe-p 漏洞利用payload lhost 监听地址&#xff08;kali地址&#xff09; lport 监听端口&#xf…

劲仔食品三年倍增,抢先打响鹌鹑蛋“健康”属性品牌之争?

如果说&#xff0c;进入2024年后&#xff0c;在股价继续陷入回调状态的食品板块中有个股走势表现相对亮眼&#xff0c;那么劲仔食品必是其中之一。 从去年发布2023年三季度业绩公告以来&#xff0c;其强劲的业绩表现就带动了股价走出小趋势。2023年10月23日至今2024年3月13日收…

Spring框架-上篇

预备知识&#xff1a;Maven基础 目录 Spring课程介绍为什么学学什么怎么学将学习的Spring技术 Spring Framework系统架构Spring Framework系统架构图Spring Framework学习线路 核心概念小结IoC案例Io入门案例思路分析Ioc入门案例(XML版) DI入门案例DI入门案例思路分析DI入门案…

关于UE的相机震动CameraShake

创建CameraShake资源 CameraShake配置是个蓝图类&#xff0c;我们选择创建BlueprintClass&#xff0c;父类选择CameraShakeBase即可。 参数调整 目前主要用到了 LocationAmplitudeMultiplier 1 LocationFrequencyMultiplier 10 RotationAmplitudeMultiplier 1 Rotation…