【C++笔试强训】如何成为算法糕手Day3

news2024/11/18 8:18:52


db43723fcefb47a09b575a7812877e29.png


 学习编程就得循环渐进,扎实基础,勿在浮沙筑高台  

 循环渐进Forward-CSDN博客


目录

 循环渐进Forward-CSDN博客

第一题:除2!

第二题:dd爱框框

第三题:简写单词


第一题:除2!

牛客网做题链接:除2! (nowcoder.com)

 思路:模拟+贪心+优先队列

        利用优先队列将最大数当作大根,每次将最大的数进行判断,使其满足次数不超过k次。

本题能用贪心是因为每一部最优解都能成为全局的最优解。

//除2!

typedef long long ll;

ll n, k;
priority_queue <ll>q;

int main()
{
	cin >> n >> k;
	ll sum = 0, x;
	while (n--)
	{
		cin >> x;
		sum += x;
		if (x % 2 == 0)
		{
			q.push(x);
		}
	}

	while (q.size() && k--)
	{
		ll t = q.top() / 2;
		q.pop();
		sum -= t;
		if (t % 2 == 0)
		{
			q.push(t);
		}

	}
	cout << sum;

	return 0;
}

第二题:dd爱框框

牛客网做题链接:F-dd爱框框_牛客小白月赛34 (nowcoder.com)

思路:本题有两种解法,一是暴力循环解法,但是时间复杂度会爆炸因此不建议用。二是滑动窗口法。我使用滑动窗口(同向双指针)法解本题。

        首先分为四个步骤,一进窗口,二判断值是否满足,三更新结果,四出窗口。

一:设置right右指针先进行移动,配合left左指针进行窗口判断。

二:利用sum数组判断数组内数值是否超过n。

三:当left+right长度小于retlen长度时更新结果

四:sum-=left出窗口

//dd爱框框

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 (retLeft + retRight + 1 < retLen)
			{
				retLeft = left;
				retRight = right;
				retLen = retRight - retLeft + 1;
			}
			sum -= arr[left];
		}
	}
	cout << retLeft << "" << retRight << endl;
	return 0;
}

第三题:简写单词

牛客网做题链接:简写单词_牛客题霸_牛客网 (nowcoder.com)

思路:这题属实是简单,简单模拟题考察的是对代码的掌握能力。

//简写单词
int main()
{
	string s;

	while (cin >> s)
	{
		if (s[0] >= 'a' && s[0] <= 'z')
		{
			cout << (char)s[0] - 32;
		}
		else {
			cout << s[0];
		}
	}


	return 0;
}

 学习编程就得循环渐进,扎实基础,勿在浮沙筑高台


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

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

相关文章

前端独立实现页面是否有发布

1、自动更新js (AutoUpdate.js) import { Modal } from "antd"let lastSrcs; const scriptReg /\<script.*src["](?<src>[^"])/gm; async function extractNewScripts() {const html await fetch(/?_timnestamp Date.now()).then(res > …

追随 HarmonyOS NEXT,Solon v3.0 将在10月8日发布

Solon &#xff08;开放原子开源基金会&#xff0c;孵化项目&#xff09;原计划10月1日发布 v3.0 正式版。看到 HarmonyOS NEXT 将在 10月8日启用公测&#xff0c;现改为10月8日发布以示庆贺。另外&#xff0c;Solon 将在2025年启动“仓颉”版开发&#xff08;届时&#xff0c;…

(11)(2.1.2) DShot ESCs(四)

文章目录 前言 6 混合ESC协议 7 IOMCU DShot限制 8 参数说明 前言 DShot 是一种数字 ESC 协议&#xff0c;它允许快速、高分辨率的数字通信&#xff0c;可以改善飞行器控制&#xff0c;这在多旋翼和 quadplane 应用中特别有用。 6 混合ESC协议 虽然 ArduPilot 自动驾驶仪…

Redis 为什么用跳表实现有序集合

近几年针对 Redis 面试时会涉及常见数据结构的底层设计&#xff0c;其中就有这么一道比较有意思的面试题&#xff1a;“Redis 的有序集合底层为什么要用跳表&#xff0c;而不用平衡树、红黑树或者 B树&#xff1f;”。 本文就以这道大厂常问的面试题为切入点&#xff0c;带大家…

Python 将数据写入 excel(新手入门)

一、场景分析 假设有如下一组列表数据&#xff1a; 写一段 python脚本 将这组数据写入一个新建的 excel&#xff0c;表头是 【序号】、【姓名】、【性别】、【年龄】 student_list [{name:小林, gender:男, age:10}, {name:小红, gender:女, age:11}, {name:小王, gender:男…

mysql数据库:超键、候选键、主键与外键

mysql数据库&#xff1a;超键、候选键、主键与外键 1、超键&#xff08;Superkey&#xff09;2、候选键&#xff08;Candidate Key&#xff09;3、主键&#xff08;Primary Key&#xff09;4、外键&#xff08;Foreign Key&#xff09; &#x1f496;The Begin&#x1f496;点点…

【Golang】Go语言接口与多态

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

106.WEB渗透测试-信息收集-FOFA语法(6)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;105.WEB渗透测试-信息收集-FOFA语法&#xff08;5&#xff09; FOFA语法案例&#xff1a…

金融领域的人工智能——Palmyra-Fin 如何重新定义市场分析

引言 DigiOps与人工智能 正在改变全球各行各业&#xff0c;并带来新的创新和效率水平。人工智能已成为金融领域的强大工具&#xff0c;为市场分析、风险管理和决策带来了新方法。金融市场以复杂性和快速变化而闻名&#xff0c;人工智能处理大量数据并提供清晰、可操作的见解的…

影刀---实现我的第一个抓取数据的机器人

你们要的csdn自动回复机器人在这里文末哦&#xff01; 这个上传的资源要vip下载&#xff0c;如果想了解影刀这个软件的话可以私聊我&#xff0c;我发你 目录 1.网页对象2.网页元素3.相似元素组4.元素操作设置下拉框复选框滚动条获取元素的信息 5.变量6.数据的表达字符串变量列…

企业身份安全管理面临的问题和解决方案

企业在向数字化、移动化、智能化加速发展的过程中&#xff0c;需加大信息化建设与数字化转型的投入已成为共识。企业建设的系统数量逐渐增多&#xff0c;部分企业甚至存在上千套信息化系统&#xff0c;且类型繁多&#xff1a; 办公系统&#xff1a;HR、OA、邮件、考勤等系统核心…

【Linux】通过内核以太层可查看应用程序运行时访问外网情况

比如&#xff0c;SourceInsight3.exe从外网接收信息&#xff1a; 下边是运行firefox时内核打印的日志&#xff0c;可以看到浏览器运行时调用了很多的操作系统内核系统调用&#xff0c;比如&#xff1a;文件读写、网络数据包的收发等等&#xff0c;其实这些日志还并不全&#x…

Qt-QListWidget多元素控件(36)

目录 多元素控件介绍 xxWidget和xxView的区别 描述 属性 方法 增加 删除 信号 使用 图形化界面操作 代码操作 多元素控件介绍 首先我们要先了解一下多元素控件是什么意思&#xff0c;一般而言是以以下这六个控件来进行区别的 xxWidget和xxView的区别 举个例子 描述…

寻找情感MV视频素材:热门素材网站推荐

在MV创作中&#xff0c;情感表达至关重要&#xff0c;唯美而深情的画面能迅速引发观众的共鸣&#xff0c;从而增强作品的感染力。不论你是制作爱情、失恋、亲情还是友情主题的MV&#xff0c;找到合适的情感视频素材都是成功的关键。如果你想为作品增添温暖和深情的氛围&#xf…

PowerPoint技巧:将幻灯片里的图片背景设置为透明

在PPT中添加了图片&#xff0c;想要将图片中的背景设置为透明或者想要抠图&#xff0c;有什么方法吗&#xff1f;今天分享两个方法。 方法一&#xff1a; 添加图片&#xff0c;选中图片之后&#xff0c;点击【图片格式】功能&#xff0c;点击最左边的【删除背景】 PPT会自动帮…

如何在 macOS 上恢复未保存的 Excel 文件 – 文件恢复的最佳方法

Microsoft Excel 主要用于学生、员工和组织创建电子表格、报告和许多其他内容。我们是人&#xff0c;我们也容易忘记事情。因此&#xff0c;您想要在 macOS 上恢复未保存的 Excel 文件并不罕见。 虽然在 Excel 上恢复未保存的电子表格很容易&#xff0c;但在 macOS 上就有些棘…

【C++掌中宝】类和对象(一):类的定义和实例化

文章目录 引言1. 什么是类&#xff1f;1.1 类的定义1.1.1 类定义格式1.1.2 访问限定符1.1.3 类域 1.2 类在编程中的作用——抽象与封装 2. 类的基本组成2.1 成员变量&#xff1a;类的属性&#xff08;变量&#xff09;2.2 成员函数&#xff1a;类的行为&#xff08;函数&#x…

ai教我校验“顺序”四则运算expression(re“非捕获组”应用)

与ai学伴聊天对掐&#xff0c;学到了re非捕获组匹配。 (笔记模板由python脚本于2024年09月25日 23:21:14创建&#xff0c;本篇笔记适合初通Python&#xff0c;熟悉六大基本数据(str字符串、int整型、float浮点型、list列表、tuple元组、set集合、dict字典)的coder翻阅) 【学习的…

手机使用技巧:如何修复变砖的 Android 手机

许多 Android 用户选择 root Android 手机以获取更多权限。但您应该知道&#xff0c;除了许多好处之外&#xff0c;root 过程中的一些不正确的操作很容易导致一些意外情况。例如&#xff0c;一些用户说他们的 Android 设备在 root 之后变成了砖头手机。 如果不幸手机变砖了&am…

数字化转型:开启未来发展新引擎

在当今飞速发展的时代&#xff0c;数字化转型已成为企业、组织乃至整个社会发展的关键趋势。 信息技术的迅猛发展&#xff0c;如互联网、大数据、人工智能等&#xff0c;为数字化转型提供了强大支撑。市场竞争的加剧&#xff0c;也促使企业不断寻求提升竞争力的方法&#xff0c…