蓝桥杯算法训练合集 十六 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中…...
从零开始:用ODrive和霍尔编码器打造你的第一个BLDC电机控制项目(Ubuntu环境)
从零开始:Ubuntu环境下用ODrive与霍尔编码器控制BLDC电机的完整指南 第一次接触无刷直流电机(BLDC)控制时,我被它高效、低噪音的特性所吸引,但复杂的控制逻辑让人望而却步。直到发现ODrive这个开源项目,它让…...
OpenClaw成本优化方案:nanobot轻量镜像替代高价API实测
OpenClaw成本优化方案:nanobot轻量镜像替代高价API实测 1. 为什么需要关注OpenClaw的成本问题 去年冬天,当我第一次用OpenClaw完成邮件自动回复的完整流程时,既兴奋又心疼。兴奋的是它真的能像人类一样读取邮件、分析内容、生成回复&#x…...
Debian 12上彻底卸载TigerVNC的5个隐藏步骤(附残留文件清理技巧)
Debian 12上彻底卸载TigerVNC的5个隐藏步骤(附残留文件清理技巧) 作为Linux系统管理员,你是否遇到过TigerVNC卸载后仍然出现端口占用或配置冲突的情况?常规的apt remove往往无法彻底清除所有痕迹。本文将揭示那些鲜为人知的清理技…...
技术日报|字节DeerFlow今日强势登顶日增3787星总量破4.6万,3D建筑编辑器黑马杀入前二
🌟 TrendForge 每日精选 - 发现最具潜力的开源项目 📊 今日共收录 12 个热门项目🌐 智能中文翻译版 - 项目描述已自动翻译,便于理解🏆 今日最热项目 Top 10 🥇 bytedance/deer-flow 项目简介: DeerFlow是一…...
计算机毕业设计springboot基于的医院预约挂号系统 智慧医疗服务平台的设计与实现——以在线挂号预约为核心功能 SpringBoot框架下的医疗机构门诊预约管理系统开发
计算机毕业设计springboot基于的医院预约挂号系统w6r0k82u (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着互联网技术的快速发展和普及,医疗领域也逐渐受到其影响…...
从零到数据分析:用ClickHouse+DBeaver在Windows上复现一个电商用户行为查询
从零构建电商数据分析平台:Windows下ClickHouse与DBeaver实战指南 1. 为什么选择ClickHouse进行电商行为分析? 去年双十一期间,某头部电商平台通过实时分析用户点击流数据,在活动开始后30分钟内就调整了首页推荐策略,…...
GLM-OCR在ComfyUI工作流中的应用:构建可视化OCR处理节点
GLM-OCR在ComfyUI工作流中的应用:构建可视化OCR处理节点 如果你经常用ComfyUI做图片生成或者编辑,可能会遇到一个挺麻烦的事儿:怎么把图片里的文字快速提取出来,然后用到下一步工作流里?比如,你想把一张海…...
如何用ExplorerPatcher解决Windows 11界面不适问题提升工作效率
如何用ExplorerPatcher解决Windows 11界面不适问题提升工作效率 【免费下载链接】ExplorerPatcher 提升Windows操作系统下的工作环境 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher Windows 11带来的界面变革让许多用户感到操作不便,任…...
League Akari:英雄联盟玩家的终极智能辅助工具实战指南
League Akari:英雄联盟玩家的终极智能辅助工具实战指南 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否厌倦了在…...
软件检测领域CNAS能力验证信息怎么查?今年有哪些软件检测领域可以参加的能力验证?
实验室在初次申请CNAS资质或者扩项时,必须要参加一次能力验证活动,并获得满意结果。对于初次申请CNAS资质的软件检测实验室,能力验证应该在质量管理体系试运行期间完成。如果时间不合适,也可以选择参加测量审核活动。测量审核活动…...
