当前位置: 首页 > news >正文

第十三届蓝桥杯(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;
}

相关文章:

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

目录 试题 A: 九进制转十进制 试题 B: 顺子日期 试题 C: 刷题统计 试题 D: 修剪灌木 试题 E: X 进制减法 试题 F: 统计子矩阵 试题 G: 积木画 试题 H: 扫雷 试题 I: 李白打酒加强版 试题 J: 砍竹子 试题 A: 九进制转十进制 九进制正整数 ( 2022 )转换成十进制等于多…...

数据结构从入门到精通——排序的概念及运用

排序的概念及运用 前言一、排序的概念排序稳定性内部排序外部排序 二、排序运用三、常见的排序算法四、排序性能检测代码srand()clock() 五、oj排序测试代码 前言 排序是将数据按照一定规则重新排列的过程&#xff0c;常见规则有升序、降序等。排序算法如冒泡排序、快速排序等…...

react面试题总结

1、当调用 setState的时候&#xff0c;发生了什么操作&#xff1f; 当调用 setState时&#xff0c; React做的第一件事是将传递给setState的对象合并到组件的当前状态&#xff0c;这将启动一个称为和解&#xff08; reconciliation&#xff09;的过程。 和解的最终目标是&#…...

5_springboot_shiro_jwt_多端认证鉴权_禁用Cookie

1. Cookie是什么 ​ Cookie是一种在客户端&#xff08;通常是用户的Web浏览器&#xff09;和服务器之间进行状态管理的技术。当用户访问Web服务器时&#xff0c;服务器可以向用户的浏览器发送一个名为Cookie的小数据块。浏览器会将这个Cookie存储在客户端&#xff0c;为这个Co…...

条形码申请指南:外地人如何成功注册香港条形码

香港条形码是打造的通行证&#xff0c;消费者对香港条码有一定的认知&#xff0c;拥有香港条形码就获得消费者对产品的认可&#xff0c;香港条形码是全球条码中具有防伪功能的条形码&#xff0c;化妆品、护肤品、保健品、包装食品等行业的产品认证&#xff0c;就有必要申请香港…...

Covalent Network借助大规模的历史Web3数据集,推动人工智能发展

人工智能在众多领域中增强了区块链的实用性&#xff0c;反之亦然&#xff0c;区块链确保了 AI 模型所使用的数据的来源和质量。人工智能带来的生产力提升&#xff0c;将与区块链系统固有的安全性和透明度融合。 Covalent Network&#xff08;CQT&#xff09;正位于这两项互补技…...

test测试类-变量学习

test测试类 作用&#xff1a;标记到类上成为测试类&#xff0c;标记到方法上成为测试方法 变量&#xff1a;测试类的变量&#xff0c;在测试类括号中应用 1、invocationCount变量 意思是这个方法应该被调用的次数。 在测试框架中&#xff0c;特别是当使用参数化测试或数据驱动…...

【DL经典回顾】激活函数大汇总(二十七)(Bent Identity附代码和详细公式)

激活函数大汇总&#xff08;二十七&#xff09;&#xff08;Bent Identity附代码和详细公式&#xff09; 更多激活函数见激活函数大汇总列表 一、引言 欢迎来到我们深入探索神经网络核心组成部分——激活函数的系列博客。在人工智能的世界里&#xff0c;激活函数扮演着不可或…...

element-plus el-table表格默认选中某一行

需求&#xff1a;进入页面时默认选中表格第一行 <el-tableref"singleTableRef":data"tableData"highlight-current-rowrow-click"handleCurrentChange" ><el-table-column property"date" label"日期" /><…...

Vue+SpringBoot打造民宿预定管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用例设计2.2 功能设计2.2.1 租客角色2.2.2 房主角色2.2.3 系统管理员角色 三、系统展示四、核心代码4.1 查询民宿4.2 新增民宿4.3 新增民宿评价4.4 查询留言4.5 新增民宿订单 五、免责说明 一、摘要 1.1 项目介绍 基于…...

基于单片机的模糊PID炉温控制系统设计

摘 要 电热炉是在工业热处理的生产中广泛使用的一种设备&#xff0c;电热炉的温度控制系统存在时变性&#xff0c;非线性&#xff0c;滞后性等特征&#xff0c;难以用常规PID的控制器对系统达到很好的控制效果。当控温精度的要求高时&#xff0c;使用传统的控制理论方法难以达…...

深入浅出落地应用分析:AI数字人「微软小冰」

hi,各位,今天要聊的是AI小冰,机缘巧合,投递了这家公司的产品,正好最近在看数字人相关的,就详细剖析下这款产品! 前言 小冰,全称为北京红棉小冰科技有限公司,前身为微软(亚洲)互联网工程院人工智能小冰团队,是微软全球最大的人工智能独立产品研发团队。作为微软全…...

【早鸟优惠|高录用|EI稳定检索】2024年虚拟现实、图像和信号处理国际学术会议(ICVISP 2024)诚邀投稿/参会!

【早鸟优惠|高录用|EI稳定检索】 2024年虚拟现实、图像和信号处理国际学术会议&#xff08;ICVISP 2024&#xff09;诚邀投稿/参会&#xff01; # 早鸟优惠 # 先投稿先送审 # #投稿免费参会、口头汇报及海报展示# 2024年虚拟现实、图像和信号处理国际学术会议&#xff08;I…...

CPU设计实战—异常处理指令

异常类型以及精确异常的处理 异常有点像中断&#xff0c;处理完还要回到原来的状态&#xff0c;所以需要对之前的状态进行保存。本CPU主要实现对以下异常的处理&#xff1a; 1.外部硬件中断 2.复位异常 3.系统调用异常&#xff08;发生在译码阶段&#xff09; 4.溢出异常&…...

Elasticsearch(13) match_phrase的使用

elasticsearch version&#xff1a; 7.10.1 match_phrase 语法 POST <index>/_search {"query": {"match_phrase": {"<field_name>": {"query": "<your_search_phrase>","slop": <max_dis…...

通过路由器监控,优化网络效率

路由器是网络的基本连接组件&#xff0c;路由器监控涉及将路由器网络作为一个整体进行管理&#xff0c;其中持续监控路由器的性能、运行状况、安全性和可用性&#xff0c;以确保更好的操作和最短的停机时间&#xff0c;因此监控路由器至关重要。 为什么路由器监控对组织很重要…...

使用canvas实现图纸标记及回显

图纸 图纸标记后的效果图 最近做的一个qms项目里面&#xff0c;需要前端在图纸上实现标记及标记后的内容还要能够回显&#xff0c;然后后端通过标记的点&#xff0c;去读取标记图纸的内容&#xff0c;如一些公式、数据之类的&#xff0c;目前实现的功能有 在图纸上面进行矩形…...

鸿蒙-自定义组件的生命周期

目录 自定义组件的生命周期 1.aboutToAppear 2.aboutToDisappear 3.onPageShow 4.onPageHide 5.onBackPress 日志输出 1.显示页面 2.页面点击返回按钮 3.页面跳转 4.页面返回 自定义组件的生命周期 先来一段列子 import router from ohos.router Entry Component…...

【Linux】自动化构建工具-make/Makefile

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. 前言2. 认识make/Makefile3. 了解make/Makefile原理3.1 依赖关系和依赖方法3.2 make检测的顺序3.3 PHONY:XXX 4. makefile内置符号 1. 前言 在上一篇中已经了解了【Linux】编译器-gcc/g使用&#xff0c;这次来一起…...

week07day03(power bi dax公式 零售数据业务分析)

一. 切片器(筛选)相关的三个函数 1.all &#xff08;all后面的数据意思是 不受其影响&#xff09; #ALL 筛选的是 筛选器 或 切片器#计算 销售金额 &#xff0c;并且 不受到 门店ID 控制 计算金额 CALCULATE(SUM(销售表[金额]),ALL(销售表[门店ID]))#计算 销售金额 &#x…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...