蓝桥杯算法训练合集 十六 1.首字母变大写2.盾神计科导作业3.Cinema4.接水问题
目录
1.首字母变大写
2.盾神计科导作业
3.Cinema
4.接水问题
1.首字母变大写
问题描述
对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符('\t')、回车符('\r')、换行符('\n')
输入格式
输入一行:待处理的字符串(长度小于80)
输出格式
输出一行:转换后的字符串。
样例输入
if so, you already have a google account. you can sign in on the right.
样例输出
If So, You Already Have A Google Account. You Can Sign In On The Right.
示例代码
#include<string.h>
#include<stdio.h>
int main(){char a[256];gets(a);int len=strlen(a);int flag=1;for(int i=0;i<len;i++){if(a[i]>='a' && a[i]<='z'){//如果是单词字母if(flag==1){//如果是首字母printf("%c",a[i]-32);flag=0;}else{printf("%c",a[i]);}}else{flag=1;printf("%c",a[i]);}}
}
2.盾神计科导作业
问题描述
盾神由于最近沉迷于电影赏析中忘记完成计算机导论的作业,为了加快他完成作业的进程他提出了一个简化版模拟cpu运行的问题。
现在一共有16个寄存器(编号为16进制),初始时每个寄存器内部然后给定一串操作序列(具体操作内容如下),然后顺序输出操作序列结束后的寄存器的值。
操作:
0abc 把值bc(十六进制表示下)存入寄存器a。
10ab 把寄存器b的值存入a。
2rab 把寄存器a,b的和存入r。
3rab 把寄存器a,b的or存入r。
4rab 把寄存器a,b的and存入r。
5rab 把寄存器a,b的xor存入r。
6000 停止。
字母均为大写。
假设寄存器能存储的数字大小为maxint。
输入格式
每行一条指令。
输出格式
顺序一行输出每个寄存器的值(表示为10进制)。
样例输入
0011
0122
2312
样例输出
17 34 51 0 0 0 0 0 0 0 0 0 0 0 0 0
数据规模和约定
输入数据指令个数小于10000条。
示例代码
#include<iostream>
using namespace std;
int shiliuzhuanshi(char n) {int n1;if ('0' <= n && n <= '9') {n1 = int(n) - 48;}else {n1 = int(n) - 55;}return n1;
}
int huo(int a, int b) {int c = 0, temp1[16] = { 0 }, temp2[16] = { 0 };int temp = 32768;for (int i = 0; i < 16; i++) {temp1[i] = a / temp;a = a % temp;temp /= 2;}temp = 32768;for (int i = 0; i < 16; i++) {temp2[i] = b / temp;b = b % temp;temp /= 2;};temp = 32768;for (int i = 0; i < 16; i++) {if (temp1[i] == 1 || temp2[i] == 1) {c += temp * 1;}temp /= 2;}return c;
}
int yu(int a, int b) {int c = 0, temp1[16] = { 0 }, temp2[16] = { 0 };int temp = 32768;for (int i = 0; i < 16; i++) {temp1[i] = a / temp;a = a % temp;temp /= 2;}temp = 32768;for (int i = 0; i < 16; i++) {temp2[i] = b / temp;b = b % temp;temp /= 2;};temp = 32768;for (int i = 0; i < 16; i++) {if (temp1[i] == 1 && temp2[i] == 1) {c += temp * 1;}temp /= 2;}return c;
}
int yihuo(int a, int b) {int c = 0, temp1[16] = { 0 }, temp2[16] = { 0 };int temp = 32768;for (int i = 0; i < 16; i++) {temp1[i] = a / temp;a = a % temp;temp /= 2;}temp = 32768;for (int i = 0; i < 16; i++) {temp2[i] = b / temp;b = b % temp;temp /= 2;};temp = 32768;for (int i = 0; i < 16; i++) {if (temp1[i] != temp2[i]) {c += temp * 1;}temp /= 2;}return c;
}
int a[16] = { 0 };int main() {string str;while (cin>>str) {int a1 = int(str[0]) - 48;//字符串第一位int a2 = shiliuzhuanshi(str[1]);//字符串第二位int a3 = shiliuzhuanshi(str[2]);//字符串第三位int a4 = shiliuzhuanshi(str[3]);//字符串第四位if (a1 == 0) {//a3和a4组成的16进制数以10进制存入寄存器a2中a[a2] = a3 * 16 + a4;}else if (a1 == 1) {//a4寄存器存入a3中a[a3] = a[a4];}else if (a1 == 2) {//a3和a4寄存器的值的和存入a2寄存器中a[a2] = a[a3] + a[a4];}else if (a1==3) {a[a2] = huo(a[a3], a[a4]);}else if (a1 == 4) {a[a2] = yu(a[a3], a[a4]);}else if (a1 == 5) {a[a2] = yihuo(a[a3], a[a4]);}else {break;}}for (int i = 0; i < 16; i++) {cout << a[i] << " ";}return 0;
}
3.Cinema
问题描述
给你一个n行m列的01矩阵A,每个元素初始值为0,
再给你k个这样的操作:
给出(xi,yi),你得按要求找出(ai,bi),
将矩阵A的点(ai,bi)赋值为1,并且输出(ai,bi).
要求如下:
1.A(ai,bi)==0.
2.满足1的情况下 , (ai,bi)与(xi,yi)的曼哈顿距离尽可能小.
3.若存在多个(ai,bi)满足条件2 , 则选出ai最小的.
4.若存在多个(ai,bi)满足条件3 , 则选出bi最小的.
输入格式
输入第一行三个正整数n,m,k , 分别表示行数,列数,操作数.
接下来k行每行包含两个正整数xi,yi , 意义见问题描述.
输出格式
共k行 , 每行输出你所求出的ai,bi .
样例输入
3 4 6
1 1
1 1
1 1
1 2
1 3
1 3
样例输出
1 1
1 2
2 1
1 3
1 4
2 3
样例输入
4 3 12
2 2
2 2
2 2
2 2
2 2
2 2
2 2
2 2
2 2
2 2
2 2
2 2
样例输出
2 2
1 2
2 1
2 3
3 2
1 1
1 3
3 1
3 3
4 2
4 1
4 3
福利数据一
5 3 0
福利数据二
2 5 4
2 3
1 3
1 5
2 3
数据规模和约定
对于10%的数据,乃福利数据.
另有10%的数据,n=1,m<=2000.
另有20%的数据,n,m<=100.
另有20%的数据,n,m<=400.
剩余60%的数据,n,m<=2000.
对于所有数据满足0<=k<=min(100000,n*m) , 1<=xi<=n , 1<=yi<=m .
备注一
为了不黑P党,时限从1.3s改成3s,不过大家应在1.3s内通过为好.
备注二
下面是原题面,由于可能存在的"调侃"行为不再使用:
由于清澄完善的功能导至本人娱乐过度玩脱了,所以原题面暂时丢失.
示例代码
#include<iostream>
using namespace std;
int n, m, k;
int A[10000][10000] = { 0 }, B[10000][10000] = { 0 };
int abs(int n) {if (n < 0) {return 0 - n;}return n;
}
int main() { ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin >> n >> m >> k;int a, b;for (int i = 0; i < k; i++) {cin >> a >> b; if (A[a][b] == 0) {A[a][b] = 1;B[a][b]++;cout << a << " " << b << endl;}else {int minlen = B[a][b];//最短曼哈顿距离int flag = 0;while(flag==0){int hang;if (a - minlen <= 0) {//超出数组上边界hang = 1;}else {hang = a - minlen;}for (int j = hang; j <= a; j++) {//上面int zlie, ylie;int leftlen = minlen - abs(a - j);zlie = b - leftlen;ylie = b + leftlen;if (zlie >= 1 && A[j][zlie] == 0) {cout << j << " " << zlie << endl;A[j][zlie] = 1;flag = 1;B[a][b] = minlen;break;}else if (ylie <= m && A[j][ylie] == 0) {cout << j << " " << ylie << endl;A[j][ylie] = 1;flag = 1;B[a][b] = minlen;break;}}if (flag == 1) {break;}if (a + minlen > n) {//超出数组下边界hang = n;}else {hang = a + minlen;}for (int j = a+1; j <= hang; j++) {//下面int zlie, ylie;int leftlen = minlen - abs(a - j);zlie = b - leftlen;ylie = b + leftlen;if (zlie >= 1 && A[j][zlie] == 0) {cout << j << " " << zlie << endl;A[j][zlie] = 1;flag = 1;B[a][b] = minlen;break;}else if (ylie <= m && A[j][ylie] == 0) {cout << j << " " << ylie << endl;A[j][ylie] = 1;flag = 1;B[a][b] = minlen;break;}}//没找到minlen++;}}}return 0;
}
4.接水问题
问题描述
学校里有一个水房,水房里一共装有m 个龙头可供同学们打开水,每个龙头每秒钟的 供水量相等,均为1。 现在有n 名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从1 到n 编号,i 号同学的接水量为wi。接水开始时,1 到m 号同学各占一个水龙头,并同时打 开水龙头接水。当其中某名同学j 完成其接水量要求wj 后,下一名排队等候接水的同学k 马上接替j 同学的位置开始接水。这个换人的过程是瞬间完成的,且没有任何水的浪费。即 j 同学第x 秒结束时完成接水,则k 同学第x+1 秒立刻开始接水。若当前接水人数n’不足m, 则只有n’个龙头供水,其它m−n’个龙头关闭。 现在给出n 名同学的接水量,按照上述接水规则,问所有同学都接完水需要多少秒。
输入格式
第1 行2 个整数n 和m,用一个空格隔开,分别表示接水人数和龙头个数。 第2 行n 个整数w1、w2、……、wn,每两个整数之间用一个空格隔开,wi 表示i 号同 学的接水量。
输出格式
输出只有一行,1 个整数,表示接水所需的总时间。
样例输入
Sample Input1:
5 3
4 4 1 2 1
Sample Input2:
8 4
23 71 87 32 70 93 80 76
样例输出
Sample Output1:
4
Sample Output2:
163
输入输出样例1说明
第1 秒,3 人接水。第1 秒结束时,1、2、3 号同学每人的已接水量为1,3 号同学接完
水,4 号同学接替3 号同学开始接水。
第2 秒,3 人接水。第2 秒结束时,1、2 号同学每人的已接水量为2,4 号同学的已接
水量为1。
第3 秒,3 人接水。第3 秒结束时,1、2 号同学每人的已接水量为3,4 号同学的已接
水量为2。4 号同学接完水,5 号同学接替4 号同学开始接水。
第4 秒,3 人接水。第4 秒结束时,1、2 号同学每人的已接水量为4,5 号同学的已接
水量为1。1、2、5 号同学接完水,即所有人完成接水。
总接水时间为4 秒。
数据规模和约定
1 ≤ n ≤ 10000,1 ≤m≤ 100 且m≤ n;
1 ≤ wi ≤ 100。
示例代码
#include<iostream>
using namespace std;
int n, m, k;
int finish(int b[100], int m) {for (int i = 0; i < m; i++) {if (b[i] > 0) {return 0;}}return 1;
}
int main() { int n, m, t = 0, a[10000], b[100] = { 0 };cin >> n >> m;if (m > n) {m = n;}for (int i = 0; i < n; i++) {cin >> a[i];}int cnt = m;for (int i = 0; i < m; i++) {b[i] = a[i];}int time = 0;while (finish(b, m) == 0) {//只有还有水龙头在使用time++;for (int i = 0; i < m; i++) {b[i]--;if (b[i] == 0) {if (cnt < n ) {//如果还有人没打水b[i] = a[cnt++];}}}}cout << time;return 0;
}
相关文章:
蓝桥杯算法训练合集 十六 1.首字母变大写2.盾神计科导作业3.Cinema4.接水问题
目录 1.首字母变大写 2.盾神计科导作业 3.Cinema 4.接水问题 1.首字母变大写 问题描述 对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。在字符串中,单词之间通过空白符分隔,空白符包括…...

密码的世界
网络世界中常见的攻击方法 窃听攻击 窃听攻击是网络世界最常见的一种攻击方式,一些不能泄露的隐私信息,例如银行卡密码,账号密码,如果被窃听泄露的话通常会带来比较严重的后果。 中间人攻击 在中间人攻击中,小明准…...

如何用一句话感动测试工程师?产品和技术都这么说!
测试工程师在公司里的地位一言难尽,产品挥斥苍穹,指引产品前路;开发编写代码实现功能,给产品带来瞩目成就。两者,一个是领航员,一个是开拓者,都是聚光灯照耀的对象,唯独团队中的保障…...

MySQL中使用索引优化
目录 一.使用索引优化 数据准备 避免索引失效应用-全值匹配 避免索引失效应用-最左前缀法则 避免索引失效应用-其他匹配原则 1、 2、 3、 4、 5、 一.使用索引优化 索引是数据库优化最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数的MySQL的性能优化…...

Linux C/C++ 多线程TCP/UDP服务器 (监控系统状态)
Linux环境中实现并发TCP/IP服务器。多线程在解决方案中提供了并发性。由于并发性,它允许多个客户端同时连接到服务器并与服务器交互。 Linux多线程编程概述 许多应用程序同时处理多项杂务。服务器应用程序处理并发客户端;交互式应用程序通常在处理后台…...

【JavaScript】JavaScript基本使用方法
如何回复程序员发来的短信:Hello world —hello nerd. 前言: 大家好,我是程序猿爱打拳。今天我给大家讲解的是初识JavaScript中基本组成成分、引入方法、输入输出语句,并用源码与效果图的方式展示给大家。 目录 1.JavaScript组成…...

Python数据容器、list列表、tuple元组、str字符串、数据容器(序列)切片、set集合、dict字典、字符串大小比较
数据来源 01 数据容器 为什么学习数据容器 数据容器 总结 02 列表 1)列表定义 为什么需要列表 列表的定义语法 列表的定义方式 演示 """ 演示数据容器之:list列表 语法:[元素,元素,......] """ # 定义一个列表list my_list …...

Python urllib
Python urllib Python urllib 库用于操作网页 URL,并对网页的内容进行抓取处理。 本文主要介绍 Python3 的 urllib。 urllib 包 包含以下几个模块: urllib.request - 打开和读取 URL。urllib.error - 包含 urllib.request 抛出的异常。urllib.parse …...

Centos7安装Python3
前言系统版本:Centos7.6python版本: python 3.10.4下载python下载链接:直通车找到对应版本的python安装包,这里以python 3.10.4为例点击3.10.4版本的链接,拉到最下面找到Files中对应的linux安装包鼠标右键复制下载链接登录linux系…...

[U3D ShaderGraph] 全面学习ShaderGraph节点 | 第四课 | Input/Lighting
📣📣📣本专栏所有内容在完结之前全部为试读模式,专栏完结之后会取消试读模式,如果感觉内容还不错的话请支持一下📣📣📣 ShaderGraph是可视化的着色器编辑工具。您可以使用此工具以可视方式创建着色器。 本专栏可以让你更了解ShaderGraph中每个节点的功能,更自如的…...

SpringBoot升级到3.0
SpringBoot 3.0出来有一段时间了,一直没时间来整理,这次来看一下吧。 Spring Boot 可以轻松创建独立的、生产级的基于 Spring 的应用程序,您可以“直接运行”。 SpringBoot升级到3.01. SpringBoot的维护时间线2. pom添加3. 打包大小对比4. 升…...

JavaWeb8-线程安全问题
目录 1.概念 1.1.单线程 1.2.多线程 2.导致线程不安全的5个因素 ①抢占式执行(首要原因) ②多个线程同时修改了同一个变量 ③非原子性操作 ④内存可见性 ⑤指令重排序 线程优点:加速程序性能。线程缺点:存在安全问题。 1…...

进程切换-
实验课之前有一些问题 中断机制 第一个问题: interrupt的两个状态源头: 外中断多由随机中断(异步中断)造成,如鼠标点击,键盘输入; 内终端多由故障终端:程序运行异常,硬件…...

python--matplotlib(2)
前言 Matplotlib画图工具的官网地址是 http://matplotlib.org/ Python环境下实现Matlab制图功能的第三方库,需要numpy库的支持,支持用户方便设计出二维、三维数据的图形显示,制作的图形达到出版级的标准。 实验环境 Pycharm2020.2.5社区版,w…...
【李忍考研传】五、信心
这天,何隐一来到图书馆就一脸兴奋地对李忍说:“晚上告诉你一个好消息。”李忍又期待又迷惑。“小何今天是咋的了?买彩票中了二十?”虽然李忍很想知道何隐在卖什么关子,但是既然晚上就能知道,那就忍忍吧。 …...
Web 页面之间传递参数的几种方法
Web 页面之间传递参数的方法有很多种,下面列出一些常见的方法以及它们的代码示例。 一、前端直接传递参数 1、URL 参数传递(query string):通过 URL 的查询字符串(即问号后面的参数)将参数传递给页面。可…...

Android实例仿真之二
目录 三 从无入手 第一阶段 第二阶段 第三阶段 第四阶段 第五阶段 第六阶段 第七阶段 八 举两个典型例子: 九 逆向工程 三 从无入手 这节标题叫从无入手,什么意思呢?如果没有Android这个实例存在,你要做一个类似Android…...

day47【代码随想录】动态规划之买卖股票的最佳时机III、买卖股票的最佳时机IV、最佳买卖股票时机含冷冻期、买卖股票的最佳时机含手续费
文章目录前言一、买卖股票的最佳时机III(力扣123)二、买卖股票的最佳时机IV(力扣188)三、最佳买卖股票时机含冷冻期(力扣309)四、买卖股票的最佳时机含手续费(力扣714)股票买卖问题总…...

网络数据包接收流程
1. 网络数据包接收流程简述 典型的以太网卡网络包接收流程如下: 1.网络包通过物理介质传到接收端的phy芯片; 2.phy芯片通过RGMII协议传到MAC芯片rx queue fifo中; 3.MAC芯片通过专用DMA将网络包搬运到网卡驱动程序预先分配好的rx ringbuffer中…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...

分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...

《Docker》架构
文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器,docker,镜像,k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...