【笔试训练】day11

1.游游的水果大礼包

思路:

枚举。假设最后的答案是x个a礼包,y个b礼包,得到一个式子:ans=a*x+b*y

我们可以枚举x的数量,这样就能变相的把y的求出来。呃这就是鸡兔同笼问题嘛

x最大的范围是多少呢?也就是a礼包最多能做多少个,即min(n/2,m)

代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
typedef long long LL;int main() {int n, m, a, b;cin >> n >> m >> a >> b;int k1 = min(n / 2, m);LL ans = 0;for (int i = 0; i <= k1; i++) {int nn = n - i * 2;int mm = m - i;int k2 = min(nn, mm / 2);ans = max(ans, (LL)a * i + b * k2);}cout << ans << endl;return 0;
}

2.买卖股票的最佳时机(二)

思路:

先求简单版本,再去看进阶。

首先是简单版本:用dp[i][0]表示第i天过后手里没有股票的最大收益,用dp[i][1]表示第i天过后手里有股票的最大收益.

对于第i天的状态一共有两个:

- 第i天过后手里没有股票的情况

    第i天没有股票,有可能第i-1天有股票,但是今天卖掉了,收益+a[i],也有可能第i-1天也没有股票。

   根据题意,这两种情况取一个最大值。所以dp[i][0]=max(dp[i-1][1]+a[i],dp[i-1][0])

- 第i天过后,手里有一支股票 .

    第i天有股票,有可能是第i-1天没有股票,今天买的,所以收益-a[i].也有可能第i-1天有股票,但是今天不卖。

     根据题意,这两种情况取一个最大值。所以dp[i][1]=max(dp[i-1][0]-a[i],dp[i-1][1])

最后的答案是dp[n][0]

代码1:

#include <iostream>
using namespace std;
const int N = 1e5 + 10;
int dp[N][2];
int a[N];
int main() {int n;cin >> n;for (int i = 1; i <= n; i++)cin >> a[i];dp[1][0] = 0;dp[1][1] = -a[1];for (int i = 2; i <= n; i++) {dp[i][0] = max(dp[i - 1][1] + a[i], dp[i - 1][0]);dp[i][1] = max(dp[i - 1][0] - a[i], dp[i - 1][1]);}cout << dp[n][0];return 0;
}

 再来思考进阶。

进阶是要求空间复杂度为O(1),说明一个数组都不能开。也意味着,我们必须边读入边处理。

但是根据朴素版本的代码,我们可以知道,其实对于第i天的状态,它只会被第i-1天的状态影响。

于是我们可以用两个变量分别表示第i-1天的有票和没票的状态。再用两个变量表示第i天的有票和没票的状态。

每过一天,我们就迭代一下每一天的状态。

于是化简状态转移方程得:

  a2 = max(b1 + x, a1);b2 = max(a1 - x, b1);a1 = a2;//迭代b1 = b2;

a2就表示dp[i][0],a1表示dp[i-1][0],b1,b2同理。

代码1:

#include <iostream>
using namespace std;int main() {int n;cin >> n;int x;int a1 = 0;int a2 = 0;int b1 = 0;int b2 = 0;cin >> b1;b1 = -b1;//初始化第一天for (int i = 2; i <= n; i++) {cin >> x;a2 = max(b1 + x, a1);b2 = max(a1 - x, b1);a1 = a2;//迭代b1 = b2;}cout << a2 << endl;return 0;
}

3.倒置字符串

思路:

首先就是不要考虑什么标点,这是假信息。

剩下得就是简单的反转字符串,再反转每个单词。数据也小,随便暴力。

代码:

#include <iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;int main() {string str;getline(cin, str);string ans;int n = str.size();reverse(str.begin(), str.end());for (int i = 1, j = 0; i < n; i++) {if ((str[i] == ' ' && str[i - 1] != ' ') || i == n - 1) {string t = "";if (i != n - 1) {t = str.substr(j, i - j);} else {t = str.substr(j, i - j + 1);}reverse(t.begin(), t.end());ans += t;ans += ' ';j = i + 1;}}cout << ans << endl;return 0;
}

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

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

相关文章

竞赛报名赛事管理系统技术分析

竞赛报名赛事管理系统是一个复杂的应用&#xff0c;涉及到用户管理、赛事信息管理、报名管理、成绩管理等多个方面。使用PHP框架来开发这样的系统&#xff0c;可以大大提高开发效率&#xff0c;保证代码的可维护性和可扩展性。以下是对基于PHP框架的竞赛报名赛事管理系统进行功…

网络编程——TCP的特性之自动重传/流量控制/拥塞控制,一篇说清楚

文章目录 1. ARQ自动重传协议1.1 停止等待ARQ1.2 连续ARQ1.3 总结 2. TCP的流量控制3. TCP的拥塞控制3.1 慢开始算法3.2 拥塞避免算法3.3 快重传算法3.4 快恢复算法 1. ARQ自动重传协议 自动重传请求&#xff08;Automatic Repeat-reQuest&#xff09;&#xff0c;通过使用确认…

vivado Versal 串行 I/O 硬件调试流程、使用 Vivado Serial I/O Analyzer 来调试设计

Versal 串行 I/O 硬件调试流程 Versal ™ ACAP 无需再生成 IBERT IP &#xff0c; 因为使用系统内串行 I/O 调试所需的必要逻辑现已集成到 GTY 收发器架构内。使 用 GTY 收发器的任何设计均可用于串行 I/O 硬件调试。 Versal 串行 I/O 硬件调试流程具有 2 个不同阶…

lesson04:类和对象(下)

1. 再谈构造函数 2.static成员 3.友元 4.内部类 5.匿名对象 1. 再谈构造函数 1.1构造函数体内赋值 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; class Date { public:Date(int year, int month, int day){_year year;_month mont…

Oceanbase体验之(二)Oceanbase集群的搭建(社区版4.2.2)

资源规划 3台observer CPU:4C及以上 内存&#xff1a;32G及以上 硬盘操作系统500G 存储盘1T及以上 虚拟机可以直接划分&#xff0c;物理机需要提前规划好资源 一、上传oceanbase安装包 登录ocp选择软件包管理 上传Oceanbase软件包&#xff08;软件包获取路径 官网免费下载社…

【量化】基于遗传规划的因子自动挖掘系统

最后&#xff1a;策略达到了23.6%的年化收益&#xff0c;夏普比率达到5.87&#xff0c;最大回撤为-4.3%&#xff0c;平局年换手率为27.45 倍&#xff0c;平均持股数量为543 支。 文末有回测结果。 目录 1.模型思想 1.1遗传规划算法介绍 ​1.2因子测试流程 2.代码与实现 2.1…

云原生Kubernetes: K8S 1.29版本 部署Nexus

目录 一、实验 1.环境 2.搭建NFS 3. K8S 1.29版本 部署Nexus 二、问题 1.volumeMode有哪几种模式 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 主机架构版本IP备注masterK8S master节点1.29.0192.168.204.8 node1K8S node节点1.29.0192.168.204.9node2K…

【yolo算法道路井盖检测】

yolo算法道路井盖检测 数据集和模型yolov8道路井盖-下水道井盖检测训练模型数据集pyqt界面yolov8道路井盖-下水道井盖检测训练模型数据集 算法原理 1. 数据集准备与增强 数据采集&#xff1a;使用行车记录仪或其他设备收集道路井盖的图像数据。数据标注&#xff1a;对收集到…

网络协议深度解析:SSL、 TLS、HTTP和 DNS(C/C++代码实现)

在数字化时代&#xff0c;网络协议构成了互联网通信的基石。SSL、TLS、HTTP和DNS是其中最关键的几种&#xff0c;它们确保了我们的数据安全传输、网页的正确显示以及域名的正常解析。 要理解这些协议&#xff0c;首先需要了解网络分层模型。SSL和TLS位于传输层之上&#xff0c…

【Java--数据结构】链表经典OJ题详解(上)

欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 谈谈头插、头删、尾插、头插的时间复杂度 反转一个单链表 链表的中间结点 返回倒数第k个结点 合并两个链表 谈谈头插、头删、尾插、头插的时间复杂度 头插和头删的时…

使用react-vant上传图片遇到的问题

使用react-vant Uploader上传图片后出现的问题。 先试用upload上传图片。 <Form.Itemrules{[{ required: true, message: 请上传头像 }]}label上传头像namefiles><Uploader accept* maxCount"1" onChange{imgFile} /></Form.Item> 图片上传成功后…

Linux网络-DNS域名解析服务

目录 一.DNS相关介绍 1.DNS是什么 2.DNS系统的分布式数据结构 根域 顶级域 二级域 子域 主机 3.服务器类型 主域名服务器 从域名服务器 缓存域名服务器 转发域名服务器 二.DNS域名解析 1.DNS域名解析方式及功能 2.DNS域名解析查询方式 2.1.递归查询&#xff0…

OpenWRT设置自动获取IP,作为二级路由器

前言 上一期咱们讲了在OpenWRT设置PPPoE拨号的教程&#xff0c;在光猫桥接的模式下&#xff0c;OpenWRT如果不设置PPPoE拨号&#xff0c;就无法正常上网。 OpenWRT设置PPPoE拨号教程 但现在很多新装的宽带&#xff0c;宽带师傅为了方便都会把光猫设置为路由模式。如果你再外…

微软在汉诺威工业博览会上推出新制造业Copilot人工智能功能,强化Dynamics 365工具集

在近日于德国汉诺威举行的盛大工业博览会上&#xff0c;微软向全球展示了其最新推出的制造业人工智能功能&#xff0c;这些功能以Dynamics 365工具集为核心&#xff0c;旨在通过先进的AI技术为制造业带来前所未有的变革。 此次推出的新功能中&#xff0c;最为亮眼的是支持AI的…

数据可视化(四):Pandas技术的高级操作案例,豆瓣电影数据也能轻松分析!

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…

Blueprints - 鼠标光标判断相关节点

一些以前的学习笔记归档&#xff1b; 俯视角场景中要用鼠标光标判断是否点中物体&#xff0c;或依靠光标引发各种事件&#xff1b; 这些逻辑一般编写在Controller中&#xff0c;Controller类本身就带有相关判断节点&#xff1a; 其中Get Hit Result Under Cursor by Channel是…

如何批量跟踪京东物流信息

随着电商行业的快速发展&#xff0c;快递业务日益繁忙&#xff0c;无论是商家还是消费者&#xff0c;都需要一种高效、便捷的快递查询工具。快递批量查询高手软件应运而生&#xff0c;以其强大的功能和便捷的操作体验&#xff0c;赢得了广大电商、微商精英们的青睐。 快递批量…

机器人视觉教学实训平台

一&#xff1a;功能概述 1.1、功能简介 机器人视觉教学实训平台基于睿尔曼机器人与海康机器视觉产品&#xff0c;面向机器人视觉系统应用而开发设计&#xff0c;产品涵盖机器人系统、工业视觉系统、自动化控制系统、计算机编程系统&#xff0c;可以在一台设备上进行多种与机器…

冷热不均?试试智慧供热二网平衡解决方案吧!

一、系统背景&#xff1a; 在城市供热系统中&#xff0c;目前普遍存在热力平衡调节困难、过量供热及供热不足并存、系统灵活性不足、管理粗放、智能化水平不高、无法根据实际天气变化及具体需求灵活调节等问题。供水管和回水管之间的温差过大&#xff0c;导致热能在循环过程中…