C++笔试强训day3

目录

1.简写单词

2.dd爱框框

3.除2!


1.简写单词

链接

我的思路超级简单,就是将输入的每个string存入vector,然后遍历每个string的第一个元素,如果为小写字母,就-32存入,若为大写,则直接存入。

详细代码:

#include <iostream>
#include <vector>
using namespace std;
const int N = 110;
vector<string> vs(N);
int main() {int sum = 0;int i = 0;while (cin >> vs[i]) {i++;sum++;}string ret;for (int i = 0; i < sum; ++i) {if (vs[i][0] >= 'a' && vs[i][0] <= 'z') {ret += vs[i][0] - 32;} else {ret += vs[i][0];}}cout << ret << endl;
}

2.dd爱框框

链接

我一开始的想法是暴力枚举,然后再用滑动窗口优化暴力,将每个符合条件的l和r下标存入一个tmp结构体中,最后遍历这个结构体完成解题。

详细代码:

#include <iostream>
#include <vector>using namespace std;
const int N = 1e7 + 10;struct tmp
{int l;int r;int dist;
}tmp[N];int main()
{int n, target;cin >> n >> target;vector<int> a(N);for (int i = 0; i < n; ++i){cin >> a[i];}if (n == 1){cout << 1 << endl;return 0;}int ans = 0x3f3f3f3f;int l = 0;int r = 0;int k = 0;int sum = a[0];while (r < n){if (sum >= target){tmp[k].l = l + 1;tmp[k].r = r + 1;tmp[k].dist = r - l + 1;k++;ans = min(ans, r - l + 1);l++;sum -= a[l - 1];}else{r++;sum += a[r];}}int prevl;int prevr;for (int i = 0; i < k; ++i){if (tmp[i].dist == ans){prevl = tmp[i].l;prevr = tmp[i].r;break;}}for (int i = 0; i < k; ++i){if (tmp[i].dist == ans){if (tmp[i].l <= prevl){l = tmp[i].l;r = tmp[i].r;}prevl = tmp[i].l;prevr = tmp[i].r;}}cout << l << ' ' << r << endl;return 0;
}

虽然这段代码通过全部用例,但是几乎是卡时间通过,而且占用内存也大:

于是参考的一下正解代码,虽然也是滑动窗口优化,但是在处理数据方面没有我的这么繁琐:

#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;
}

时间都差不多,毕竟都是一个算法,但内存大大优化了。

就是这段代码我唯一不理解的是为什么不用判断当有两个区间长度一致是l的大小。

3.除2!

链接

看到题目描述中最小的和,那就是每次都找最大的偶数除以2。

这时就很容易想到优先队列(也就是堆)。

堆创建时默认为大根堆。

详细代码:

#include <iostream>
#include <queue>using namespace std;
typedef long long ll;
const int N = 1e5 + 10;int n,k;int main()
{cin >> n >> k;int ai = 0;ll sum = 0;priority_queue<int> pq;for(int i = 0; i < n; ++i){cin >> ai;sum += ai;if(ai % 2 == 0)pq.push(ai);} while (pq.size() && k--){int t = pq.top();pq.pop();sum -= t / 2;if(t / 2 % 2 == 0)pq.push(t / 2);}cout << sum << endl;return 0;
}

while循环中的pq.size()一定不要忘记判断。不然只能过50%。

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

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

相关文章

Docker in Docker的原理与实战

Docker in Docker&#xff08;简称DinD&#xff09;是一种在Docker容器内部运行另一个Docker实例的技术。这种技术允许用户在一个隔离的Docker容器中创建、管理和运行其他Docker容器&#xff0c;从而提供了更灵活和可控的部署选项。以下是DinD的主要特点&#xff1a; 隔离性&am…

Maven实战—搭建微服务 Maven 工程架构

需求案例&#xff1a;搭建一个电商平台项目&#xff0c;该平台包括用户服务、订单服务、通用工具模块等。 项目架构&#xff1a; 用户服务&#xff1a;负责处理用户相关的逻辑&#xff0c;例如用户信息的管理、用户注册、登录等。订单服务&#xff1a;负责处理订单相关的逻辑…

使用示例解释.NET中的Mocking是什么?

让我们踏上探索.NET软件开发中Mocking概念的旅程&#xff0c;让我们深入了解Mocking是多么简单易懂、易于访问。请与我一起穿越这个主题&#xff0c;我将涵盖以下内容&#xff1a; 理解Mocking&#xff1a;为何它对于构建强大的测试策略至关重要。探索一些最常见的Mocking库&a…

Ansible组件说明

1.Ansible Inventory 工作当中有不同的业务主机&#xff0c;我们需要在把这些机器信息存放在inventory里面&#xff0c;ansible默认的inventory的文件是/etc/ansible/hosts&#xff0c;也可以通过ANSIBLE_HOSTS环境变量来指定或者运行ansible和ansible-playbook的时候用-i参数临…

视频教程下载:用ChatGPT玩转海外抖音TikTok

CHATGPT for TikTok是一门前沿课程&#xff0c;旨在帮助您充分发挥TikTok广告活动的全部潜力。随着数字营销的爆炸性增长&#xff0c;企业需要使用先进的工具来保持竞争优势。在这门课程中&#xff0c;您将学习如何利用CHATGPT——一种先进的人工智能工具——来创建与目标受众产…

有没有手机上使用的库存软件

库存软件是一种仓库的信息管理系统&#xff0c;它主要针对出库与入库这些数据进行管理&#xff0c;传统的库存管理都是在电脑上安装一个专门的数据库管理系统进行管理&#xff0c;这也是一种比较成熟的管理方式&#xff0c;那么有没有手机上使用的库存软件。 手机上使用的库存软…

k8s配置configmap指定到容器的指定文件

我们需要将名称为walletkey.properties的文件做成configmap&#xff0c;然后将walletkey.properties文件单独挂载出来到/data/walletkey.properties&#xff0c;且不能覆盖/data目录&#xff0c;具体如下 1、创建configmap configmap文件内容 其中walletkey.properties: >-引…

python语言零基础入门——注释、print()函数、input()函数

目录 一、注释 1.块注释 2.行内注释 3.多行注释 二、打印变量 1.print()函数&#xff1a;输出/打印指定内容 2.input()函数&#xff1a;输入指定内容 三、编程题&#xff1a;个人名片 一、注释 1.块注释 以#开始&#xff0c;直到本行结束都是注释为了保证代码的可读性…

科技的崛起:国内机器视觉蓬勃发展

文 | BFT机器人 在工业4.0的浪潮下&#xff0c;随着科技的蓬勃发展&#xff0c;机器视觉逐渐走入大众视野&#xff0c;机器视觉产品的普及范围也越来越广。 大家知道机器视觉的由来吗&#xff1f; 机器视觉的由来可以追溯到20世纪70年代&#xff0c;美国麻省理工学院&#xff…

机器学习鸢尾花各种模型准确率对比

流程 获取数据集导入需要的包读取数据划分训练集和测试集调用各种模型比较准确率 获取数据集 链接&#xff1a;https://pan.baidu.com/s/1RzZyXsaiJB3e611itF466Q?pwdj484 提取码&#xff1a;j484 --来自百度网盘超级会员V1的分享导入需要的包 import pandas as pd impo…

华为机考入门python3--(17)牛客17- 坐标移动

分类&#xff1a;字符串 知识点&#xff1a; 正则匹配 re.match(pattern, move) 格式字符串&#xff0c;可以在字符串中直接引用变量 f"{x},{y}" 题目来自【牛客】 import re def is_valid_coordinate(move): # 使用正则表达式验证移动是否合法 # ^: …

施耐德 PLC 及模块 ModbusTCP 通信配置方法

1. 通过【I/O扫描器】服务进行读写 相关文档&#xff1a;各模块说明书仅 NOE 网卡模块、部分 CPU 自带的网口支持 优点&#xff1a;不需要额外编程&#xff0c;系统自动周期型读写数据缺点&#xff1a;扫描周期不定&#xff0c;程序无法控制数据刷新的时序 2. 通过内部程序…

java扩展jmeter依赖

前置条件 创建一个maven项目&#xff0c; 引入依赖 <dependency><groupId>org.apache.jmeter</groupId><artifactId>ApacheJMeter_core</artifactId><version>3.2</version> </dependency> <dependency><groupId&g…

NIO学习

文章目录 前言一、主要模块二、使用步骤1.服务器端2.客户端 三、NIO零拷贝(推荐)四、NIO另一种copy总结 前言 NIO是JDK1.4版本带来的功能,区别于以往的BIO编程,同步非阻塞极大的节省资源开销&#xff0c;避免了线程切换和上下文切换带来的资源浪费。 一、主要模块 Selector&a…

【Linux学习】Linux编辑器-vim使用

这里写目录标题 1. &#x1f320;vim的基本概念&#x1f320;2. vim的基本操作&#x1f320;3.vim异常处理&#x1f320;4. vim正常模式的相关命令&#x1f320;5. vim末&#xff08;底&#xff09;行模式相关命令 vi/vim都是多模式编辑器&#xff0c;不同的是vim是vi的升级版本…

达梦数据库一体机树立金融解决方案标杆

达梦数据库一体机自问世以来&#xff0c;获得众多行业用户的高度关注&#xff0c;并率先在金融行业吹响冲锋号角&#xff0c;实现多个重大项目的落地应用。近日&#xff0c;珠海华润银行股份有限公司基于达梦数据库一体机 I 系列的《数据库一体机银行多业务系统集中部署解决方案…

(保姆级教学)跨站请求伪造漏洞

1. CSRF漏洞 CSRF&#xff08;Cross-site request forgery&#xff09;跨站请求伪造&#xff0c;也被称为One Click Attack 或者Session Riding&#xff0c;通常缩写为CSRF或者XSRF&#xff0c;是一种对网站的恶意利用。尽管听起来像跨站脚本&#xff08;XSS&#xff09;&…

数据结构和算法:动态规划

初探动态规划 动态规划&#xff08;dynamic programming&#xff09;是一个重要的算法范式&#xff0c;它将一个问题分解为一系列更小的子问题&#xff0c;并通过存储子问题的解来避免重复计算&#xff0c;从而大幅提升时间效率。 例题&#xff1a;爬楼梯 给定一个共有 &…

电机控制专题(三)——Sensorless之有功磁链Active Flux电压模型

文章目录 电机控制专题(三)——Sensorless之有功磁链Active Flux电压模型前言理论推导仿真验证总结参考文献 电机控制专题(三)——Sensorless之有功磁链Active Flux电压模型 前言 总结下电机控制中的有功磁链Active Flux(AF)模型。 纯小白&#xff0c;如有不当&#xff0c;轻…

OpenHarmony实战开发-Web自定义长按菜单案例。

介绍 本示例介绍了给Webview页面中可点击元素&#xff08;超链接/图片&#xff09;绑定长按/鼠标右击时的自定义菜单的方案。 效果预览图 使用说明 长按Web页面中的图片或者链接元素&#xff0c;弹出自定义的Menu菜单&#xff0c;创建自定义的操作&#xff0c;如复制图片、使…