往年5级考题(c++)

考级在即,这篇文章就来看看往年的c++5级考试真题

逃离迷宫

题目描述

你在一个地下迷宫中找到了宝藏,但是也触发了迷宫机关,导致迷宫将在T分钟后坍塌,为此你需要在T分钟内逃离迷宫,你想知道你能不能逃离迷宫。

迷宫是一个边长为m的正方形,其中"S"表示你所在的位置,"E"表示迷宫出口,"."是可以随意走动的区域,"#"是不可穿行的墙壁,每次你可以耗费1分钟在区域间移动(上下左右四个方向)。

输入格式

输入包含多组数组,第一行是一个整数K(1 <= K <= 10),表示有K组数据。

接下来每组数组包含整数m(2<=m<=10)和整数T,m表示正方形迷宫的边长,T表示坍塌时间。

其后是一个m*m的字符矩阵,包含字符"S", "E", "."和"#"。

输出格式

每组数据输出一行,输出“YES"或者"NO",表示是否可以在坍塌之前逃离(也就是说移动次数是否可以不超过T)。

样例

样例输入

2
4 7 
S...
###.
.#E.
..#.    
3 4
S..
..#
.#E

样例输出
YES

NO

#include <bits/stdc++.h>
using namespace std;struct node
{int x,y,v;node(){};node(int a,int b,int c){x = a;y = b;v = c;}
};
node que[300];
int dx[4] = {0,1,0,-1};
int dy[4] = {1,0,-1,0};
int xx,yy;
int m;
char a[15][15] = {'\0'};
int head;
int tail;int main()
{int k;cin>>k;for(int iii = 0;iii<k;iii++){int t;cin>>m>>t;int xxx,yyy;for(int i = 1;i<=m;i++){for(int j = 1;j<=m;j++){cin>>a[i][j];if(a[i][j]=='S'){xxx = i;yyy = j;}else if(a[i][j]=='E'){xx = i;yy = j;}}}que[++tail] = {xxx,yyy,0};bool f = false;while(head<tail){head++;for(int i = 0;i<4;i++){int tx = que[head].x+dx[i];int ty = que[head].y+dy[i];if(tx>=1&&tx<=m&&ty>=1&&ty<=m&&a[tx][ty]!='#'){a[tx][ty] = '#';que[++tail] = {tx,ty,que[head].v+1};if(tx==xx&&ty==yy){if(que[tail].v<=t){f = true;cout<<"YES"<<endl;}break;}}}if(f==true) break;}if(f==false) cout<<"NO"<<endl;}return 0;
}

密室逃脱

题目描述

有一个密室逃脱游戏,有100间密室连在一排。密室编号是从1开始连续排列一直排到第100间密室,如下图:游戏规则:1.玩家初始位置在1号密室; ⒉每次玩家可以进入右边的一个密室,也可以跳过一个密室进入下个密室(如:当玩家当前在3号密室,他可以进入4号密室也可以进入5号密室);3.有毒气的密室不能进入需要避开。 给定三个正整数X,Y,M (1<X<Y<M≤100),表示三个密室编号。X号密室和Y号密室有毒气泄漏,不能进入,玩家需要进入到M号密室 按照 游戏规则进入M号密室有多少种路线方案。例如: X=2,Y=4,M=7,2号和4号有毒气泄露,避开2号和4号毒气密室,进入7号密室有2种路线方案,分别是1->3->5->6->7路线和1->3->5->7路线。

输入格式

输入三个正整数X,Y,M(1<X<Y≤M),并以英文逗号隔开

输出格式

输出从1号密室开始避开X、Y号毒气密室,进入M号密室有多少种路线方案

样例

样例输入
2,4,7

样例输出
2

#include <bits/stdc++.h>
using namespace std;int a[110] = {0};
int cnt = 0;
int m;void aaa(int);int main()
{int x,y;char aaaa,bbbb;cin>>x>>aaaa>>y>>bbbb>>m;a[x] = 1;a[y] = 1;aaa(1);cout<<cnt;return 0;
}
void aaa(int n)
{if(n==m){cnt++;return;}else if(n>m){return;}if(a[n+1]!=1){aaa(n+1);}if(a[n+2]!=1){aaa(n+2);}
}

求逆序对问题

题目描述

给定N个数的序列a1,a2,...aN,定义一个数对(ai, aj)为“重要逆序对”的充要条件为 i < j 且 ai > 2aj。求给定序列中“重要逆序对”的个数。

输入格式

本题有多个测试点,每个测试点分为两行:第一行为序列中数字的个数N(1 ≤ N ≤ 200000),第二行为序列a1, a2 ... aN(0 ≤a ≤ 10000000),由空格分开。N=0表示输入结束。

输出格式

每个测试点一行,输出一个整数,为给序列中“重要逆序对”的个数。

样例

样例输入
10

0 9 8 7 6 5 4 3 2 1

0

样例输出
16

#include <bits/stdc++.h>
using namespace std;int n;
int a[100010];
int cnt;int main()
{cin>>n;while(n!=0){for(int i = 1;i<=n;i++){cin>>a[i];}for(int i = 1;i<=n;i++){for(int j = 1;j<=n;j++){if(i<j&&a[i]>2*a[j]){cnt++;}}}cout<<cnt<<endl;cin>>n;}return 0;
}

Bookshelf B超级书架

题目描述

Farmer John 最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了。现在,只有书架的顶上还留有一点空间。

所有  头奶牛都有一个确定的身高 。设所有奶牛身高的和为 。书架的高度为 ,并且保证 。

为了够到比最高的那头奶牛还要高的书架顶,奶牛们不得不像演杂技一般,一头站在另一头的背上,叠成一座“奶牛塔”。当然,这个塔的高度,就是塔中所有奶牛的身高之和。为了往书架顶上放东西,所有奶牛的身高和必须不小于书架的高度。

显然,塔中的奶牛数目越多,整座塔就越不稳定,于是奶牛们希望在能够到书架顶的前提下,让塔中奶牛的数目尽量少。 现在,奶牛们找到了你,希望你帮她们计算这个最小的数目。

输入格式

第  行:  个用空格隔开的整数: 和 。

第  行: 第  行是  个整数:。

输出格式

第  行: 输出  个整数,即最少要多少头奶牛叠成塔,才能够到书架顶部

样例

样例输入

复制6 40
6
18
11
13
19
11

样例输出

复制3
样例说明

入说明: 一共有6头奶牛,书架的高度为40,奶牛们的身高在6..19之间。

输出说明: 一种只用3头奶牛就达到高度40的方法:18+11+13。当然还有其他方法,在此不一一列出了。

#include <iostream>
#include <algorithm>
using namespace std;int n,b;
int a[20010];int main()
{cin>>n>>b;for(int i = 0;i<n;i++){cin>>a[i];}sort(a+0,a+n);int sum = 0;int cnt = 0;for(int i = n-1;i>=0;i--){sum += a[i];cnt++;if(sum>=b){cout<<cnt;return 0;}}return 0;
}

抓住那头牛

题目描述

农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点,牛位于点。农夫有两种移动方式:

1、从  移动到  或 ,每次移动花费一分钟

2、从  移动到 ,每次移动花费一分钟

假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?

输入格式

两个整数, 和 。

输出格式

一个整数,农夫抓到牛所要花费的最小分钟数。

样例

样例输入
5 17

样例输出
4

样例解释

路线为: 5 -> 10 -> 9 -> 18 -> 17,共 4 步。

#include <bits/stdc++.h>
using namespace std;
struct point
{int x,v;point(){};point(int a,int b){x = a;v = b;}
};
point que[100010];
int head = 0;
int tail = 0;
int b[100010];
int n,m;
int cnt;
int dx[] = {1,-1,2};
int main()
{cin>>n>>m;b[n] = 1;que[++tail] = {n,0};while(head<tail){head++;bool t = false;for(int i = 0;i<3;i++){int tx;if(i==2){tx = que[head].x*dx[i];}else{tx = que[head].x+dx[i];}if(tx>=1&&tx<=100010&&b[tx]==0){b[tx] = 1;que[++tail] = {tx,que[head].v+1};if(tx==m){t = true;break;}}}if(t==true){break;}}cout<<que[tail].v;return 0;
}

献给阿尔吉侬的花束

题目描述

阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。

迷宫用一个R×C的字符矩阵来表示。字符S表示阿尔吉侬所在的位置,字符E表示奶酪所在的位置,字符#表示墙壁,字符.表示可以通行。阿尔吉侬在1个单位时间内可以从当前的位置走到它上下左右四个方向上的任意一个位置,但不能走出地图边界。

输入格式

第一行是一个正整数T(1 ≤ T ≤ 10),表示一共有T组数据。

每一组数据的第一行包含了两个用空格分开的正整数R和C(2 ≤ R, C ≤ 200),表示地图是一个R×C的矩阵。

接下来的R行描述了地图的具体内容,每一行包含了C个字符。字符含义如题目描述中所述。保证有且仅有一个S和E。

输出格式

对于每一组数据,输出阿尔吉侬吃到奶酪的最少单位时间。若阿尔吉侬无法吃到奶酪,则输出“oop!”(只输出引号里面的内容,不输出引号)。每组数据的输出结果占一行。

样例

样例输入

3
3 4
.S..
###.
..E.
3 4
.S..
.E..
....
3 4
.S..
####
..E.

样例输出
5

1

oop!

#include <bits/stdc++.h>
using namespace std;
struct node
{int x,y,v;node(){};node(int a,int b,int c){x = a;y = b;v = c;}
};
node que[10010];
char a[210][210];
int ma;
int n,m;
int sx,sy,ex,ey;
int head,tail;
int dx[] = {0,1,0,-1};
int dy[] = {1,0,-1,0};int main()
{int ttt;cin>>ttt;while(ttt!=0){ttt--;cin>>n>>m;for(int i = 1;i<=n;i++){for(int j = 1;j<=m;j++){cin>>a[i][j];if(a[i][j]=='S') sx = i,sy = j;if(a[i][j]=='E') ex = i,ey = j;}}head = 0;tail = 0;bool t = false;que[++tail] = {sx,sy,0};while(head<tail){head++;for(int i = 0;i<4;i++){int tx = que[head].x+dx[i];int ty = que[head].y+dy[i];if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&a[tx][ty]!='#'){a[tx][ty] = '#';que[++tail] = {tx,ty,que[head].v+1};if(tx==ex&&ty==ey){cout<<que[tail].v<<endl;t = true;break;}}}if(t==true) break;}if(t==false) cout<<"oop!"<<endl;}return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++算法竞赛基础语法-9

快速排序是一种高效的排序算法&#xff0c;由C. A. R. Hoare在1960年提出&#xff0c;基本思想是分治法&#xff08;Divide and Conquer&#xff09;策略&#xff0c;通过递归将一个大问题分解为若干个较小的子问题&#xff0c;然后合并这些子问题的解来解决原始问题 快速排序…

如何在 Elasticsearch 中设置向量搜索 - 第二部分

作者&#xff1a;来自 Elastic Valentin Crettaz 了解如何在 Elasticsearch 中设置向量搜索并执行 k-NN 搜索。 本文是三篇系列文章中的第二篇&#xff0c;深入探讨了向量搜索&#xff08;也称为语义搜索&#xff09;的复杂性以及它在 Elasticsearch 中的实现方式。 第一部分重…

【算法专场】哈希表

目录 前言 哈希表 1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; 算法分析 算法代码 面试题 01.02. 判定是否互为字符重排 ​编辑算法分析 算法代码 217. 存在重复元素 算法分析 算法代码 219. 存在重复元素 II 算法分析 算法代码 解法二 算法代码 算法…

cpu温度多少正常?cpu温度过高怎么办

CPU温度是指中央处理器的工作温度&#xff0c;它是影响电脑性能和稳定性的重要因素。如果CPU温度过高&#xff0c;会导致电脑卡顿、死机、自动关机、甚至损坏CPU。因此&#xff0c;了解CPU温度的正常范围和降温的方法&#xff0c;对于保护电脑和提高效率是非常有必要的。 一、C…

Git指南-从入门到精通

代码提交和同步命令 流程图如下&#xff1a; 第零步: 工作区与仓库保持一致第一步: 文件增删改&#xff0c;变为已修改状态第二步: git add &#xff0c;变为已暂存状态 bash $ git status $ git add --all # 当前项目下的所有更改 $ git add . # 当前目录下的所有更改 $ g…

盛铂科技 SCP4006/4018/4040:国产袖珍式功率计 射频微波功率探头 平均功率计

在通信、电子测量等领域&#xff0c;功率计是确保信号稳定、系统高效运行的关键设备。盛铂科技自主研发的 SCP4000 系列自带 USB 接口的袖珍式 CW 信号平均功率计&#xff0c;以其卓越的性能、高性价比和便捷的操作&#xff0c;在众多同类产品中脱颖而出&#xff0c;成为行业内…

IntelliJ IDEA 2024.1.4版无Tomcat配置

IntelliJ IDEA 2024.1.4 (Ultimate Edition) 安装完成后&#xff0c;调试项目发现找不到Tomcat服务&#xff1a; 按照常规操作添加&#xff0c;发现服务插件中没有Tomcat。。。 解决方法 1、找到IDE设置窗口 2、点击Plugins按钮&#xff0c;进入插件窗口&#xff0c;搜索T…

【个人开发】deepseed+Llama-factory 本地数据多卡Lora微调

文章目录 1.背景2.微调方式2.1 关键环境版本信息2.2 步骤2.2.1 下载llama-factory2.2.2 准备数据集2.2.3 微调模式2.2.4 微调脚本 2.3 踩坑经验2.3.1 问题一&#xff1a;ValueError: Undefined dataset xxxx in dataset_info.json.2.3.2 问题二&#xff1a; ValueError: Target…

SEO短视频矩阵系统源码开发概述

一、功能特性 多账号、多平台一键授权管理&#xff1a;该系统支持抖音、快手、小红书、B站和视频号等平台的账户集成&#xff0c;实现统一管理。批量视频发布及定时发布功能&#xff1a;用户能够通过系统进行大规模视频的批量上传和设定具体发布时间。AI混剪技术生成原创内容&…

Linux 服务器部署deepseek

把手教你在linux服务器部署deepseek&#xff0c;打造专属自己的数据库知识库 正文开始 第一步&#xff1a;安装Ollama 打开官方网址&#xff1a;https://ollama.com/download/linux 下载Ollama linux版本 复制命令到linux操作系统执行 [rootpostgresql ~]# curl -fsSL http…

DeepSeek-VL2 环境配置与使用指南

DeepSeek-VL2 环境配置与使用指南 DeepSeek-VL2 是由 DeepSeek 公司开发的一种高性能视觉-语言模型&#xff08;VLM&#xff09;。它是 DeepSeek 系列多模态模型中的一个版本&#xff0c;专注于提升图像和文本之间的交互能力。 本文将详细介绍如何配置 DeepSeek-VL2 的运行环…

EasyRTC轻量级SDK:智能硬件音视频通信资源的高效利用方案

在智能硬件这片广袤天地里&#xff0c;每一份资源的精打细算都关乎产品的生死存亡。随着物联网技术的疾速演进&#xff0c;实时音视频通信功能已成为众多设备的标配。然而&#xff0c;硬件资源的捉襟见肘&#xff0c;让开发者们常常陷入两难境地。EasyRTC&#xff0c;以它的极致…

Github Action自动流翻译README文档【CI/CD】

翻译自述文件操作 一、自述文件翻译 英语简体中文繁体中文印地语法语阿拉伯 GitHub Action 将自述文件翻译成任何语言 这是一个 GitHub Action&#xff0c;可以自动将你的 repo 中的自述文件翻译成指定的语言。 二、设置 添加工作流文件到您的项目&#xff08;例如.githu…

张弛语言课退费动漫配音与人物的深度剖析退费

在动漫的奇幻世界里&#xff0c;精彩的画面固然吸睛&#xff0c;而配音更是赋予角色灵魂的关键要素&#xff0c;它与人物之间存在着千丝万缕的紧密联系。 《火影忍者》中的鸣人&#xff0c;他的配音充满活力与朝气&#xff0c;声音高亢且坚定&#xff0c;将鸣人的热血、乐观和…

Nginx负载均衡

一。Nginx负载均衡的算法以及过程 二。nginx四层负载均衡的配置&#xff08;四层&#xff09; 1.vi /etc/nginx/conf.d/lb.conf 比较常见&#xff1a;weight&#xff1a;设置权重&#xff0c;backup&#xff1a;当其他主机全部用不了&#xff0c;这个作为备份 2.systemctl r…

Python爬虫实战:股票分时数据抓取与存储 (1)

在金融数据分析中&#xff0c;股票分时数据是投资者和分析师的重要资源。它能够帮助我们了解股票在交易日内的价格波动情况&#xff0c;从而为交易决策提供依据。然而&#xff0c;获取这些数据往往需要借助专业的金融数据平台&#xff0c;其成本较高。幸运的是&#xff0c;通过…

json-schema 的编辑器

最近在找一个 json-schema 的编辑器&#xff0c;在网上找了找&#xff0c;以下两个项目用的比较多 一、两款json-schema-editor 1、vue-json-schema-editor-visual 一个高效易用的基于 Vue Element UI 的 json-schema 编辑器。 git地址&#xff1a;https://github.com/gis…

记一次Self XSS+CSRF组合利用

视频教程在我主页简介或专栏里 &#xff08;不懂都可以来问我 专栏找我哦&#xff09; 目录&#xff1a;  确认 XSS 漏洞 确认 CSRF 漏洞 这个漏洞是我在应用程序的订阅表单中发现的一个 XSS 漏洞&#xff0c;只能通过 POST 请求进行利用。通常情况下&#xff0c;基于 POST 的…

API网关基础知识总结

什么是网关&#xff1f; 微服务背景下&#xff0c;一个系统被拆分为多个服务&#xff0c;但是像安全认证&#xff0c;流量控制&#xff0c;日志&#xff0c;监控等功能是每个服务都需要的&#xff0c;没有网关的话&#xff0c;我们就需要在每个服务中单独实现&#xff0c;这使…

Redis存储⑥Redis五大数据类型之 Zset

目录 1. Zset 有序集合 1.1 Zset 有序集合常见命令 zadd zcard zcount zrange zrevrange zrangebyscore&#xff08;弃用&#xff09; zpopmax bzpopmax zpopmin bzpopmin zrank zrevrank zscore zrem zremrangebyrank zremrangebyscore zincrby 1.2 Zset有…