笔试练习day3
目录
- BC149 简写单词
- 题目解析
- 代码
- dd爱框框
- 题目解析
- 解析
- 代码
- 方法一暴力解法
- 方法二同向双指针(滑动窗口)
- 除2!
- 题目解析
- 解法
- 模拟+贪心+堆
感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接
🐒🐒🐒 个人主页
🥸🥸🥸 C语言
🐿️🐿️🐿️ C语言例题
🐣🐣🐣 python
🐓🐓🐓 数据结构C语言
🐔🐔🐔 C++
🐿️🐿️🐿️ 文章链接目录
🏀🏀🏀 笔试练习题
BC149 简写单词
链接添加链接描述

题目解析
这道题就是提取一句话中每个单词的首字母,并且将他们的首字母用大写的形式输出,这里的难点就在于每个单词是通过空格分隔开的,在输入的时候如果用scanf和cin直接输入的话会因为有空格而丢失后面的数据
解决这个难点的第一个方法是用getline输入,getline输入是遇到’\n’才停止,也就是遇到回车键才结束,这样就不会因为有空格而丢失数据了,后面过程就是通过循环去找空格出现的位置,然后空格的下一个位置就是单词的首字母
第二个方法就是用string去解决(这个解法就是通过循环直接往string中输入字符串,然后每次循环输出输入的字符串首字母)
代码
int main()
{
string s;
while(cin>>s)
{if(s[0]<='z'&&s[0]>='a'){s[0]=s[0]-32;}cout<<s[0];
}return 0;
}
dd爱框框
链接dd爱框框

题目解析
这道题的意思是在1到n的区间里我们要求出里面的最小区间,使得区间里的所有数加起来大于或等于x,比如区间[1,5]意思就是从arr[1]开始一直到arr[5]的所有数据,[5,8]就表示从arr[5]到arr[8],需要注意这里的n个数是从1开始的,所以用数组的时候我们要先从1开始输入
解析
我们以图中示例为例

输出3 5表示区间[3,5]中的所有数据加起来大于等于x,且这个区间的长度相比于后面的区间长度来说是最小的
代码
方法一暴力解法
暴力解法就是给一个left和right让right和left相加,当结果大于等于x的时候就记录下来


这里的范围是[1,5],然后left往后移动,之后right=left,然后right往后走

方法二同向双指针(滑动窗口)
这个方法是在方法一的基础上进行优化
比如left在1的时候,范围是[1,5],在这个范围的总和为27,之后left++
但是right是没有必要重新会到left位置再往后去确定范围,因为left在a[1]的时候right在a[5]是刚好满足条件的,那么left++后来到a[2]时[2,5]的所以数总和只会比[1,5]少一个a[1],所以只需要在[1,5]总和减去一个a[1]就可以了

然后判断减去a[1]后[2,5]是否满足>=x的条件
这个方法的流程如下

#include<iostream>
using namespace std;
const int N=1e7+10;
int arr[N];
int n,x;
int main()
{cin>>n>>x;for(int i=1;i<=n;i++)cin>>arr[i];int left=0,right=0,sum=0;int retLen=N,retLeft=-1,retRight=-1;while(right<=n){sum+=arr[right];while(sum>=x){if(right-left+1<retLen){retLeft=left;retRight=right;retLen=right-left+1;}sum-=arr[left++];}right++;}cout<<retLeft<<" "<<retRight<<endl;return 0;
}
这里有一些细节就是我们将N arr[N] n x都定义成全局变量,这样做的好处是有些题可能会封装一些函数,需要传入这些数据,当我们把他定义成全局变量的时候,就可以不用传参了
此外N=1e7+10让N有足够大
内部的while循环是为了让retLen足够小,让减去一次arr[left]的时候,如果sum仍然大于x,那么就继续减,直到刚好小于x
除2!
链接除2!

题目解析
这道题就是每次操作选取最大的偶数进行砍半,使所以数相加最小
解法
模拟+贪心+堆
#include<iostream>
#include<queue>
using namespace std;typedef long long LL;
LL n,k;
priority_queue<LL> heap;
int main()
{cin>>n>>k;LL sum=0,x;while(n--){cin>>x;sum+=x;if(x%2==0)heap.push(x);}while(heap.size()&&k--){LL t=heap.top()/2;heap.pop();sum-=t;if(t%2==0)heap.push(t);}cout<<sum;return 0;
}
需要注意这里k和ai的范围都是[1,10^9],并且n的范围是[1,10 ^5],因为要让n个数累加,最后的结果肯定是超过int的最大值的,所以我们用int类型显然是不行的,因此要用longlont,代码中用typedef将longlong命名为LL
priority_queue heap是一个队优先级队列(堆)
第一个while循环是为了让sum将所以的数都加起来,然后如果有偶数,那么就进入堆中
第二个while循环需要先判断堆中是否有元素,当堆里面什么都没有的时候就没有必要继续进行下去了,并且每次循环要让k–,表示操作次数减1
因为是优先级队列,堆顶元素是最大的数,我们用t保留最大数的一半,然后让堆顶元素出堆,之后让sum减去一半这个最大的数,但是我们并不知道t是否还是偶数(t如果一开始是2,2/2=1就变成了奇数,而t如果是4…这些偶数,4/2=2),所以需要再对t进行判断,如果还是偶数那么就继续入堆,然后重复操作
相关文章:
笔试练习day3
目录 BC149 简写单词题目解析代码 dd爱框框题目解析解析代码方法一暴力解法方法二同向双指针(滑动窗口) 除2!题目解析解法模拟贪心堆 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒 个人主页 🥸…...
企业想要将大模型技术应用到企业管理中需具备什么条件?
#企业 #企业管理 #大模型 企业想要将大模型技术应用到企业管理中,需要考虑以下几个关键条件: 1.明确的需求定位:企业应首先诊断自身的业务场景、数据、算法、基础设施预算以及战略等能力,明确大模型能够为企业带来的具体赋…...
go 事件机制(观察者设计模式)
背景: 公司目前有个业务,收到数据后,要分发给所有的客户端或者是业务模块,类似消息通知这样的需求,自然而然就想到了事件,观察者比较简单就自己实现以下,确保最小功能使用支持即可,其…...
RISC-V竞赛|第二届 RISC-V 软件移植及优化锦标赛报名正式开始!
目录 赛事背景 赛道方向 适配夺旗赛 优化竞速赛 比赛赛题(总奖金池8万元!) 🔥竞速赛 - OceanBase 移植与优化 比赛赛程(暂定) 赛事说明 「赛事背景」 为了推动 RISC-V 软件生态更快地发展࿰…...
【VTK】ubuntu手动编译VTK9.3 Generating qmltypes file 失败
环境 硬件:Jetson Xavier NX 套件 系统:Ubuntu 20.04 软件 :QT5.15.6 解决 0、问题 最近在Jetson Xavier NX 套件上编译VTK库,因为想要配合QQuick使用,所以cmake配置时勾选了VTK_MODULE_ENABLE_VTK_GUISupportQtQu…...
学习java的日子 Day64 学生管理系统 web2.0 web版本
MVC设计模式 概念 - 代码的分层 MVC:项目分层的思想 字母表示层理解MModle模型层业务的具体实现VView视图层展示数据CController控制器层控制业务流程(跳转) 1.细化理解层数 Controller:控制器层,用于存放Servlet&…...
【第14章】Spring Cloud之Gateway路由断言(IP黑名单)
文章目录 前言一、内置路由断言1. 案例(Weight)2. 更多断言 二、自定义路由断言1. 黑名单断言2. 全局异常处理3. 应用配置4. 单元测试 总结 前言 Spring Cloud Gateway可以让我们根据请求内容精确匹配到对应路由服务,官方已经内置了很多路由断言,我们也…...
3、pnpm yarn npm
项目里实际上就只有这些依赖 node module 里却有很多的包 原因: 比如说vue,vue内部有依赖了其余的包。工具又依赖了别的依赖 造成的问题:我可以直接去用这个包,但是这个包在package.json中却没有看到-----幽灵依赖 那如果说别…...
❄️5. Kubernetes核心资源之名称空间和Pod实战
**什么是名称空间Namespace: ** Namespace是k8s系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多用户的资源隔离。默认情况下,k8s集群中的所有的Pod都是可以相互访问的。但是在实际中,可能不想让两个Pod之间进行互…...
锂电池充电板电路设计
写这篇文章的目的主要是个人经验的总结,希望能给开发者们提供一种锂电池充电电路以及电源显示的电路思路。接下来从以下几个方面讲述电路。 设计这款电路的初衷是想用一块硬币大小的锂电池作为供电电源(3.5V-4.2V),降压供给3.3V电…...
工业互联网产教融合实训基地解决方案
一、引言 随着“中国制造2025”战略的深入实施与全球工业4.0浪潮的兴起,工业互联网作为新一代信息技术与制造业深度融合的产物,正引领着制造业向智能化、网络化、服务化转型。为培养适应未来工业发展需求的高素质技术技能人才,构建工业互联网…...
高效批量提取PPT幻灯片中图片的方法
处理包含大量图片的PPT(PowerPoint)幻灯片已成为许多专业人士的日常任务之一。然而,手动从每张幻灯片中逐一提取图片不仅耗时耗力,还容易出错。为了提升工作效率,减少重复劳动,探索并实现一种高效批量提取P…...
怎么在 React Native 应用中处理深度链接?
深度链接是一种技术,其中给定的 URL 或资源用于在移动设备上打开特定页面或屏幕。因此,深度链接可以引导用户到应用程序内的特定屏幕,而不仅仅是启动移动设备上的应用程序,从而提供更好的用户体验。这个特定的屏幕可能位于一系列层…...
el-table自动滚动到最底部
我的需求是这样的,因为我的表格是动态的,可以手动新增行,固定表头,而且需要一屏显示,为了方便用户就需要再新增的时候表格自动向上滚动。 差了官方文档后发现有一个属性可以支持 这个属性正是自己需要的,所…...
小白零基础学数学建模系列-引言与课程目录
目录 引言一、我们的专辑包含哪些内容?第一周:数学建模基础与工具第二周:高级数学建模技巧与应用第三周:机器学习基础与数据处理第四周:监督学习与无监督学习算法第五周:神经网络 二、学完本专辑能收获到什…...
Integer类型比较是 == 还是equals()
在Java编程中,判断两个Integer对象是否相等时,我们经常遇到使用和equals()方法的选择问题。这两个操作符和方法在判断对象相等性时有所不同,理解它们的区别对于编写健壮的代码至关重要。 使用判断Integer相等性 在Java中,操作符…...
七夕情人节送什么礼物?看完这篇你就知道了
在这个充满爱意的时刻,送上一份精心挑选的礼物,不仅能表达你的爱意,更能加深彼此之间的情感联系。然而,选择一份合适的情人节礼物并非易事,因为每个人都有其独特的需求和喜好。如果你还在为情人节送什么礼物而纠结&…...
让B站直接变成一个纯粹的音乐平台的简单小方法
可能在大多数人眼里,B站就是一个内容丰富的高质量视频平台 但实际上B站还是一个“音乐平台”,只不过大多数时候都是以视频的形式呈现,所以你们可能对此没啥感觉。 那么今天给大家分享一款神级插件,让B站变成一个纯粹的音乐平台&a…...
【MySQL 01】在 Ubuntu 22.04 环境下安装 MySQL
文章目录 🌈 1. 说明🌈 2. 卸载不必要的环境🌈 3. 安装 MySQL🌈 4. 启动和关闭 MySQL 服务🌈 5. 临时登录 MySQL🌈 6. 设置 MySQL 密码🌈 7. 配置 MySQL 🌈 1. 说明 在安装与卸载中…...
linux命令 根据某一字段去掉txt中重复的数据
前提: 文档为格式化好的数据。比如一行是一个json。 判断总共有多少行数据: grep No f.txt | wc -l 查询重复数据有多少行: grep No f.txt | sort -u | wc -l 找到重复的那行数据:(如果每行的json数据大,可忽略此操…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...
简单介绍C++中 string与wstring
在C中,string和wstring是两种用于处理不同字符编码的字符串类型,分别基于char和wchar_t字符类型。以下是它们的详细说明和对比: 1. 基础定义 string 类型:std::string 字符类型:char(通常为8位)…...
