C++笔试强训day22

2024-05-15 12:20
文章标签 c++ 笔试 强训 day22

本文主要是介绍C++笔试强训day22,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.添加字符

2.数组变换

3.装箱问题

常规一维优化:


1.添加字符

链接

因为lenA  <= lenB <= 50,因此可以无脑暴力解题:

遍历所有符合条件的匹配方法,找出最小的不同的数量,即最大的相同的数量

#include <iostream>
using namespace std;
int main() {string A;string B;cin >> A >> B;int c1 = A.size();int c2 = B.size();int cnt = 0;if (c1 == c2){for (int i = 0; i < c1; i++){if (A[i] != B[i])cnt++;}cout << cnt << endl;}else{int dif = c2 - c1;int max_n = 0;for (int i = 0; i <= dif; ++i){	cnt = 0;int j = 0;int k = i;while (j < c1){if (A[j] == B[k])cnt++;j++;k++;}max_n = max(max_n, cnt);}cout << c1 - max_n << endl;}return 0;
}

2.数组变换

链接

判断是否为2的n次方就好了。

#include <iostream>
using namespace std;
int arr[60];
int main() {int n;cin >> n;int maxn = 0;int x;for (int i = 1; i <= n; ++i){cin >> x;arr[i] = x;maxn = max(maxn, x);}for (int i = 1; i <= n; ++i){if (!((maxn / arr[i]) % 2 == 0 || arr[i] == maxn)){cout << "NO" << endl;return 0;}}cout << "YES" << endl;return 0;
}

3.装箱问题

链接

01背包dp问题:

讲题意逆向转化为使装入的体积最大更好求解,最后返回时返回V - dp[n][V]即可。

#include <iostream>
using namespace std;int V, n;
int v[20010];
int dp[40][20010];
int main()
{cin >> V >> n;for (int i = 1; i <= n; ++i)cin >> v[i];// 填表for (int i = 1; i <= n; ++i){for (int j = 1; j <= V; ++j){dp[i][j] = dp[i - 1][j];if (j >= v[i])dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - v[i]] + v[i]);}}cout << V - dp[n][V] << endl;return 0;
}
常规一维优化:
#include <iostream>
using namespace std;int V, n;
int v[20010];
int dp[20010];
int main()
{cin >> V >> n;for (int i = 1; i <= n; ++i)cin >> v[i];// 填表for (int i = 1; i <= n; ++i)for (int j = V; j >= v[i]; --j)dp[j] = max(dp[j], dp[j - v[i]] + v[i]);cout << V - dp[V] << endl;return 0;
}

这篇关于C++笔试强训day22的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/991828

相关文章

Python获取C++中返回的char*字段的两种思路

《Python获取C++中返回的char*字段的两种思路》有时候需要获取C++函数中返回来的不定长的char*字符串,本文小编为大家找到了两种解决问题的思路,感兴趣的小伙伴可以跟随小编一起学习一下... 有时候需要获取C++函数中返回来的不定长的char*字符串,目前我找到两种解决问题的思路,具体实现如下:

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

C/C++错误信息处理的常见方法及函数

《C/C++错误信息处理的常见方法及函数》C/C++是两种广泛使用的编程语言,特别是在系统编程、嵌入式开发以及高性能计算领域,:本文主要介绍C/C++错误信息处理的常见方法及函数,文中通过代码介绍... 目录前言1. errno 和 perror()示例:2. strerror()示例:3. perror(

C++变换迭代器使用方法小结

《C++变换迭代器使用方法小结》本文主要介绍了C++变换迭代器使用方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、源码2、代码解析代码解析:transform_iterator1. transform_iterat

详解C++中类的大小决定因数

《详解C++中类的大小决定因数》类的大小受多个因素影响,主要包括成员变量、对齐方式、继承关系、虚函数表等,下面就来介绍一下,具有一定的参考价值,感兴趣的可以了解一下... 目录1. 非静态数据成员示例:2. 数据对齐(Padding)示例:3. 虚函数(vtable 指针)示例:4. 继承普通继承虚继承5.

C++中std::distance使用方法示例

《C++中std::distance使用方法示例》std::distance是C++标准库中的一个函数,用于计算两个迭代器之间的距离,本文主要介绍了C++中std::distance使用方法示例,具... 目录语法使用方式解释示例输出:其他说明:总结std::distance&n编程bsp;是 C++ 标准

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

C++中::SHCreateDirectoryEx函数使用方法

《C++中::SHCreateDirectoryEx函数使用方法》::SHCreateDirectoryEx用于创建多级目录,类似于mkdir-p命令,本文主要介绍了C++中::SHCreateDir... 目录1. 函数原型与依赖项2. 基本使用示例示例 1:创建单层目录示例 2:创建多级目录3. 关键注

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque