C++笔试强训day2

目录

1.牛牛的快递

2. 最小花费爬楼梯

3.数组中两个字符串的最小距离


1.牛牛的快递

链接

单纯分类讨论,不加赘述。

详细代码:

#include <iostream>
using namespace std;
#define ll long long
int main() {
float mg;
char st;
cin >> mg >> st;
if(mg == 0.0)
{
cout << 0 << endl;
}
else if(mg <= 1.0)
{
if(st == 'y')
cout << 25 << endl;
else
cout << 20 << endl;
}
else
{
ll newm = mg - 1 + 0.9;
if(st == 'y')
printf("%lld\n", 25 + newm);
else
printf("%lld\n", 20 + newm);
}
}

2. 最小花费爬楼梯

链接

看题目就清楚了,一眼dp(动态规划)。

dp三步走:

1.分析几维(当然也能直接创建多个数组分开分析)

2.初始化dp表

3.动态填表

注意:该题的目的地是下表位n的位置,而不是n-1。

#include <iostream>
#include <vector>
using namespace std;const int N = 1e5 + 10;int dp[N][2];int main() {int n;cin >> n;vector<int> cost(N);for(int i = 0; i < n; ++i){cin >> cost[i];}// 从下标0开始dp[0][0] = 0;dp[1][0] = cost[0];// 从下标1开始dp[1][1] = 0;dp[2][1] = cost[1];// 状态转移方程for(int i = 2; i <= n; ++i){dp[i][0] = min(dp[i - 1][0] + cost[i - 1], dp[i - 2][0] + cost[i - 2]);}for(int i = 3; i <= n; ++i){dp[i][1] = min(dp[i - 1][1] + cost[i - 1], dp[i - 2][1] + cost[i - 2]);}cout << min(dp[n][0], dp[n][1]) << endl;return 0;
}

3.数组中两个字符串的最小距离

我当时的想法非常单一,就是想着用两个数组将s1和s2在vector<string>中的位置储存起来,然后遍历两个数组,求其相减的最小值,可能由于n只到了1e5,就全案例通过了。

1.自己思路(能跑过)

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
#define int long long
const int N = 1e5 + 10;
signed main() {int n;cin >> n;string s1;string s2;cin >> s1 >> s2;int c1[N];int c2[N];vector<string> vs(N);for (int i = 0; i < n; ++i){cin >> vs[i];}int j = 0, k = 0;if (n < 2){cout << -1 << endl;return 0;}else{for (int i = 0; i < n; ++i){if (vs[i] == s1)c1[j++] = i;if (vs[i] == s2)c2[k++] = i;}}if (j == 0 || k == 0){cout << -1 << endl;return 0;}int mi = 0x3f3f3f3f;for (int i = 0; i < j; ++i){for (int l = 0; l < k; ++l){mi = min(mi, abs(c2[l] - c1[i]));}}cout << mi << endl;return 0;
}

2.优化(预处理思想  这里也可以看做dp吧)

时间复杂度O(N):

#include <vector>
#include <algorithm>
using namespace std;
#define int long long
const int N = 1e5 + 10;
signed main() {int n;cin >> n;string s1;string s2;cin >> s1 >> s2;int a[N];vector<string> vs(N);for (int i = 0; i < n; ++i){cin >> vs[i];}int prev1 = -1;int prev2 = -1;int ret = 0x3f3f3f3f;for (int i = 0; i < n; ++i){if (vs[i] == s1){if (prev2 != -1){ret = min(ret, i - prev2);}prev1 = i;}else if(vs[i] == s2){if (prev1 != -1){ret = min(ret, i - prev1);}prev2 = i;}}if (ret == 0x3f3f3f3f)cout << -1 << endl;elsecout << ret << endl;return 0;
}

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

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

相关文章

[C++][算法基础]最大公约数(欧几里得算法)

给定 n 对正整数 ,&#xff0c;请你求出每对数的最大公约数。 输入格式 第一行包含整数 n。 接下来 n 行&#xff0c;每行包含一个整数对 ,。 输出格式 输出共 n 行&#xff0c;每行输出一个整数对的最大公约数。 数据范围 1≤n≤, 1≤,≤2 输入样例&#xff1a; 2 3 …

C/C++基础----内存相关

malloc分配内存 用法 参数为要开辟内存的大小&#xff08;字节为单位&#xff09;返回值为void*,所以要强转一下语法&#xff1a;malloc()动态开辟20个字节的内存&#xff0c;代码&#xff1a;#include <iostream>using namespace std;int main() {int *a (int *) mal…

基于Hadoop的电商用户行为分析系统设计与实现的系统架构设计

采集层&#xff1a;利用Flume采集电商服务器端用户行为数据&#xff0c;把数据处理后发送至HDFS。 存储层&#xff1a;用户行为数据采集上传至HDFS存储&#xff0c; 导入到数据仓库Hive进行计算处理&#xff0c;分析结果保存至MySql数据库中。 计算层&#xff1a;根据分析需求建…

Vue2+ElementUI的el-table实现新增数据行与删除的功能

Vue2ElementUI的el-table实现新增数据行与删除的功能 文章目录 Vue2ElementUI的el-table实现新增数据行与删除的功能1. 代码2. 效果 1. 代码 TableIndex.vue如下 <template><div><div><el-button click"add" class"filter-item" pl…

通过ABAP程序自动创建信息对象-第二弹

前言 上一篇讲了通过ABAP程序去自动生成BW的ADSO模型&#xff0c;这一篇讲讲信息对象的自动生成&#xff0c; 一、实现效果 对于BW顾问来说&#xff0c;模型建完之后&#xff0c;就要开始选择用字段还是用信息对象进行建模&#xff0c;如果信息对象不存在呢&#xff0c;那么…

SpringBoot整合Activiti7——实战之放假流程(会签)

文章目录 代码实现部署流程启动流程填写放假通知任务投票审批xml文件 会签场景&#xff1a; 开始 - 填写放假通知单&#xff08;代理人&#xff09;- 投票审批&#xff08;指定多个参与人&#xff09;- 根据设置的完成条件后&#xff0c;全部参与人必须完成后&#xff0c;自动结…

小米su7全力提高产能,小米su7的这几个问题你都知道吗?车载随身wifi哪款最好用?公认最好的随身wifi格行随身wifi怎么样?

小米汽车官方近日回应网友关切&#xff0c;透露小米SU7非创始版交付进度。工厂正处于生产爬坡阶段&#xff0c;正全力提升产能和物料准备节奏&#xff0c;以加快交付效率。对于锁单后能否调整提车时间&#xff0c;小米汽车表示将与销售沟通协商。 当然关于网友们的问题也进行了…

条码的基础知识

条码的基础知识 条码&#xff1a;条码是由一组按一定编码规则排列的条、空符号组成&#xff0c;用以表示一定的字符、数字及符号组成的信息 一维码 Code 128 Code 128 是一种密度很高的字母数字代码系统&#xff0c;可对其进行双向扫描。此代码系统可编码整个 128 ASCII 字…

ERROR in [eslint] reorder to top import/first

情景再现&#xff1a;在react开发的时候&#xff0c;导入组件、函数时报错&#xff1a;Import in body of module; reorder to top import/first … 原因&#xff1a;在import语句前有变量声明 解决&#xff1a; 变量的声明&#xff0c;要放在import之后 // 错误示例 import {…

物联网网络传输,STM32和ESP32

2024.4.17 今天主要是记录一下我这个STM32F407和esp8266组成的互联网板子的一些例程运行心得&#xff0c; 下面这个例程是STM32发AT指令给esp8266&#xff0c;使得esp8266作为tcp client连接到我的手机热点&#xff0c;然后我用电脑连接wifi&#xff0c;打开tcp server&#x…

【CDN产品测评-笔记】探索云服务中的安全和性能增强功能

【CDN产品测评-笔记】探索云服务中的安全和性能增强功能 写在最前面1. DNS管理&#xff1a;核心的域名服务功能2. DDoS防护&#xff1a;构筑坚不可摧的防线3. Web防护&#xff1a;智能化的网络攻击防御4. BOT管理&#xff1a;精准识别与流量控制5. 加速服务&#xff1a;提升全球…

【动态规划 区间dp 位运算】3117. 划分数组得到最小的值之和

本文涉及知识点 动态规划 区间dp 位运算 LeetCode3117. 划分数组得到最小的值之和 给你两个数组 nums 和 andValues&#xff0c;长度分别为 n 和 m。 数组的 值 等于该数组的 最后一个 元素。 你需要将 nums 划分为 m 个 不相交的连续 子数组&#xff0c;对于第 ith 个子数组…

各RAID级别的特点以及对应的容量计算方式

RAID&#xff08;Redundant Array of Independent Disks&#xff09;是一种将多个独立的硬盘组合起来以提高数据存储性能、容量或冗余度的技术。在实际项目中&#xff0c;通常采购的磁盘阵列支持设置对应的RAID级别。本人也进行过实战&#xff0c;而现在为了应对软考来总结一下…

【攻防世界】lottery

弱比较代码审计 本题已提供源码&#xff0c;如果没提供&#xff0c;输入/robots.txt&#xff0c;发现/.git function buy($req){require_registered();require_min_money(2);$money $_SESSION[money];//接受用户原有money$numbers $req[numbers];//接受输入的数字$win_num…

C++类和对象第二弹(构造,析构和拷贝构造函数)

目录 前言 1. 类的6个默认成员函数 2. 构造函数 2.1 概念 2.2 特性 3. 析构函数 3.1 概念 3.2 特性 4. 拷贝构造函数 4.1 概念 4.2 特征 总结 前言 本文主要讲解类中构造函数、析构函数和拷贝构造函数。关于这三个类中默认成员函数的知识点很多&#xff0c;有许多…

视觉SLAM学习打卡【10】-后端·滑动窗口法位姿图

本节是对上一节BA的进一步简化&#xff0c;旨在提高优化实时性.难点在于位姿图部分的雅可比矩阵求解&#xff08;涉及李代数扰动模型求导&#xff09;&#xff0c;书中的相关推导存在跳步&#xff08;可能数学功底强的人认为过渡的理所当然&#xff09;&#xff0c;笔者参考了知…

【Gradle】Gradle的构建过程

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置&#xff0c;也增加了基于Kotlin语言的kotlin-based DSL&#xff0c;抛弃了基于XML的各种繁琐配置。 面向Java应用为主。当前其支持的语言C、J…

免费网址导航网站源码v1.7.0最新版内置多个模板

效果图 PC端&移动端&#xff08;共有7款主题&#xff09; 1.5IUX搜索 2.Onenav主题 六零二开 3.基于彩虹工具网修改 4.默认主题 5.基于default主题开发 6.极简个人主页主题 7.孤客主题 后台管理效果图 项目说明 孤客导航页&#xff08;LoSFeR&#xff09;是一个…

Zephyr Windows开发环境搭建

Zephyr 如果有错误或未及时更新&#xff0c;请以官网文档为主 官网&#xff1a;https://docs.zephyrproject.org/latest/develop/getting_started/index.htm 下载安装 Chocolatey 这是一个类似于在Linux系统下 yum 和 apt 那样的包管理器 官网&#xff1a;https://chocolat…

安宝特方案 | AR工业解决方案系列-工厂督查

在工业4.0时代&#xff0c;增强现实&#xff08;AR&#xff09;技术正全面重塑传统工业生产&#xff0c;在工厂监督领域&#xff0c;其应用不仅大幅提升了生产效率、监测准确性和规范执行程度&#xff0c;而且为整体生产力带来了质的飞跃。 01 传统挑战与痛点 在制造业生产流程…