小米2025届软件开发工程师(C/C++/Java)(编程题AK)

选择题好像也是25来个

编程题

T1

题目描述

小明喜欢解决各种数学难题。一天,他遇到了一道有趣的题目:他需要帮助他的朋友们完成一个排序任务。小明得到两个长度为 n 的数组a[]和b[]。他可以在两个数组对应位置进行交换,即选定一个位置 i ,交换a[ i ]和b[ i ]。他可以进行任意次交换(包括0次),他想知道按最优策略来是否可以达成让至少一个数组a[]或者b[],变得有序。有序即数组单调不减(升序)或者单调不增(降序)均可。
形式化地,给定两个长度为n的数组a[]和b[]。你可以任选一个位置i交换a[i]和b[i],可以进行任意多次这样的操作。你的目标是判断是否能够通过这些操作使得至少一个数组变得有序(升序或降序)。小明想要在老师面前证明自己,但这个题目实在有点太难了,请你帮帮他!

输入描述

第一行一个整数T,表示数据组数。
对于每组数据:
第一行包含一个整数n,表示数组的长度。
第二行包含n个整数a1,a2,…,an
第三行包含n个整数b1,b2.…bn
1≤T≤100,1≤n≤10000,1≤ai,bi≤10000。

输出描述

输出T行分别表示每组数据答案。
对每组数据,如果能够通过交换操作使至少一个数组变得有序,输出YES;否则,输出NO

样例输入

2
5
1 3 5 2 4
5 2 3 4 1
7
1 2 3 4 3 2 1
4 3 2 1 2 3 4

样例输岀

YES
NO

提示
第一组数据:
在这个样例中,其中一种可行的方法为:通过交换第2、3、4个位置,我们可以使数组 a变成升序:1 2 3 4 4
第二组数据:
无论如何都无法让任何一个数组变得有序。

C++实现代码

#include <bits/stdc++.h>
#include <iostream>
#include <climits>using namespace std;int main() {int T;int n;cin >> T;while (T--) {cin >> n;vector<int> a(n), b(n);for (int i = 0; i < n; i++) {cin >> a[i];}for (int i = 0; i < n; i++) {cin >> b[i];}int t = 0;// 递增bool flag1 = true;for (int i = 0; i < n; i++) {int tmpmn = min(a[i], b[i]);int tmpmx = max(a[i], b[i]);if (tmpmn >= t) {t = tmpmn;}else if (tmpmx >= t) {t = tmpmx;}else {flag1 = false;break;}}// 递减t = 1e9;bool flag2 = true;for (int i = 0; i < n; i++) {int tmpmn = min(a[i], b[i]);int tmpmx = max(a[i], b[i]);if (tmpmx <= t) {t = tmpmx;}else if (tmpmn <= t) {t = tmpmn;}else {flag2 = false;break;}}if (flag1 || flag2) {cout << "YES" << endl;}else {cout << "NO" << endl;}}return 0;
}

在这里插入图片描述

T2、装箱

题目描述

小明正在整理他的玩具,他遇到了一道有趣的装箱问题:他有一个容量为 N 的箱子,并且有 n 个大小为a[ i ]的玩具。除了这 n 个玩具外,还有 c 个大小均为1的填充物,它们是小明参加各种活动的纪念品,正好可以拿来填充缝隙。他的任务是确定是否可以选其中一些玩具(填充物也包含在内)放入箱子中,恰好装满箱子,而不留下任何空隙,当然,他也可以选择全部用填充物来填满整个箱子(如果埴充物足够多的话),也即装满一箱纪念品,小明也觉得很棒!

输入描述

第一行1个整数T,表示数据组数。
对于每组数据:
第一行包含三个整数N和n和c,分别表示箱子的容量和玩具的数量以及填充物数量。
第二行包含n个整数a[1],a[2],…,a[n],分别表示这n个玩具的大小。
1≤T≤100,1≤n≤500,1≤N,c,a[i]≤1000

输出描述

输出T行分别表示每组数据答案。
对每组数据,输出一行,如果可以恰好装满箱子,输出YES;否则,输出 NO。

样例输入

2
10 4 1
2 3 5 7
10 1 3
6

样例输出

YES
NO

提示
对第一组样例:
箱子的容量是 10,玩具的大小分别为2、3、5和7。
其中一种可行的方法为:玩具 2、3和5 加起来正好是 10,所以可以恰好装满箱子,因此输出 YES。
对第二组样例:
只有一个玩具,大小为6,三个大小为1的填充物,全放进去也只有9的大小,无法填满。

C++实现代码

#include <bits/stdc++.h>
#include <iostream>using namespace std;int main() {int T;cin >> T;while (T--) {int N, n, c;cin >> N >> n >> c;vector<int> v(n);for (int i = 0; i < n; i++) {cin >> v[i];}vector<int> dp(N + 1, 0);for (int i = 0; i < n; i++) {vector<int> tmp(N + 1, 0);for (int j = 0; j <= N; j++) {// 装这个玩具if (j + v[i] <= N) {tmp[j + v[i]] = max(tmp[j + v[i]], dp[j] + v[i]);}// 不装这个玩具tmp[max(0, j - v[i])] = max(tmp[max(0, j - v[i])], dp[j]);}dp = tmp;}int ans = *max_element(dp.begin(), dp.end());if (ans + c >= N) {cout << "YES" << endl;}else {cout << "NO" << endl;}}return 0;
}

在这里插入图片描述

#include <iostream>
#include <vector>using namespace std;int main() {int t;cin >> t;while(t--) {int N, n, c;cin >> N>>n>> c;vector<int> w;for(int i = 0; i < n; i++) {int tmp;cin>> tmp;w.push_back(tmp);}vector<int> dp(N+1, 0);for(int i = 0; i < n; i++) {for(int j = N; j >= w[i]; j--) {dp[j] = max(dp[j], dp[j - w[i]] + w[i]);}}if(dp[N] + c >= N) {cout << "YES" << endl;} else {cout << "NO" << endl;}}
}

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

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

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

相关文章

hrnet训练的pt模型结合目标检测进行关键点识别的更准确前向推理

本篇在将图像输入hrnet识别之前先进行目标检测来确定识别的位置&#xff0c;让识别更加精准。 本段代码设置了一个区域框BOX&#xff0c;让人走入区域内才开始检测&#xff0c;适用于考核等场景&#xff0c;也可以直接去掉BOX也是一样的效果。若画面背景中有多个行人&#xff0…

《pyqt+open3d》open3d可视化界面集成到qt中

《pyqtopen3d》open3d可视化界面集成到qt中 一、效果显示二、代码三、资源下载 一、效果显示 二、代码 参考链接 main.py import sys import open3d as o3d from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget from PyQt5.QtGui import QWindow from PyQt5.Qt…

App模拟下载场景的demo

摘要 目的&#xff1a;提供一个稳定的下载场景&#xff0c;可以手动触发和定时触发下载&#xff0c;每次下载相同大小文件&#xff0c;研究下载场景的功耗影响 原理&#xff1a;把电脑当做服务器&#xff0c;手机测试App固定下载电脑存放的某个XXXMB的大文件&#xff0c;基于…

C语言进阶版第14课—内存函数

文章目录 1. memcpy函数的使用和模拟实现1.1 memcpy函数的使用1.2 模拟实现memcpy函数 2. memmove函数的使用和模拟实现2.1 memmove函数的使用2.2 memmove函数的模拟实现 3. memset函数4. memcmp函数 1. memcpy函数的使用和模拟实现 1.1 memcpy函数的使用 memcpy函数的原形voi…

英语音标与重弱读

英语中&#xff0c;比较重要的是音标。但事实上&#xff0c;我们对音标的学习还是比较少的&#xff0c;对它的理解也是比较少的。 一、音标 2个半元音 [w][j] 5个长元音&#xff1a;[i:] [ə:] [ɔ:] [u:] [ɑ:] 7个短元音&#xff1a;[i] [ə] [ɔ] [u] [] [e] [ʌ] 8个双元音…

leetcode-32. 最长有效括号

题目描述 给你一个只包含 ( 和 ) 的字符串&#xff0c;找出最长有效&#xff08;格式正确且连续&#xff09;括号 子串 的长度。 示例 1&#xff1a; 输入&#xff1a;s "(()" 输出&#xff1a;2 解释&#xff1a;最长有效括号子串是 "()"示例 2&…

压力测试指南-压力测试基础入门

压力测试基础入门 在当今快速迭代的软件开发环境中&#xff0c;确保应用程序在高负载情况下仍能稳定运行变得至关重要。这正是压力测试大显身手的时刻。本文将带领您深入了解压力测试的基础知识&#xff0c;介绍实用工具&#xff0c;并指导您设计、执行压力测试&#xff0c;最…

ffmpeg 结合 opencv 显示ps流文件

存储的ps 流文件如何显示 使用ffmpeg 和 opencv 做demo 结合opencv 和 ffmpeg 显示ps文件 // showps.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //#include <iostream> #include <opencv2/opencv.hpp>extern "C" { #inc…

【openwrt-21.02】T750 openwrt switch划分VLAN之后网口插拔状态异常问题分析及解决方案

Openwrt版本 NAME="OpenWrt" VERSION="21.02-SNAPSHOT" ID="openwrt" ID_LIKE="lede openwrt" PRETTY_NAME="OpenWrt 21.02-SNAPSHOT" VERSION_ID="21.02-snapshot" HOME_URL="https://openwrt.org/" …

第100+26步 ChatGPT学习:概率校准 Bayesian Binning into Quantiles

基于Python 3.9版本演示 一、写在前面 最近看了一篇在Lancet子刊《eClinicalMedicine》上发表的机器学习分类的文章&#xff1a;《Development of a novel dementia risk prediction model in the general population: A large, longitudinal, population-based machine-learn…

【2】图像视频的加载和显示

文章目录 【2】图像视频的加载和显示一、代码在哪写二、创建和显示窗口&#xff08;一&#xff09;导入OpenCV的包cv2&#xff08;二&#xff09;创建窗口&#xff08;三&#xff09;更改窗口大小 & 显示窗口&#xff08;四&#xff09;等待用户输入补充&#xff1a;ord()函…

Gateway和VirtualService

在 Istio 服务网格中&#xff0c;Gateway 和 VirtualService 是两个关键的配置对象&#xff0c;它们分别用于定义入站流量的接入点和路由规则。下面详细介绍这两个配置对象的功能及其相互关系。 Gateway Gateway 是 Istio 中用于定义入站流量接入点的配置对象。它描述了外部流…

正则表达式的使用规则

1.介绍 正则表达式&#xff08;Regular Expression&#xff09;是一种强大的文本模式匹配工具&#xff0c;它使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。正则表达式可以用于文本搜索、文本替换等场景。 2.基本语法 正则表达式由普通字符&#xff0…

vue框架学习-- 父子页面 参数方法调用

一、父组件向子组件传递参数 在Vue中&#xff0c;父组件向子组件传递参数是一种非常常见的通信方式&#xff0c;这通常通过props来实现。props允许父组件向子组件传递数据&#xff0c;并且这些数据是单向的&#xff0c;即子组件不能直接修改由父组件传递的数据。但是&#xff…

【Unity踩坑】Unity更新Google Play结算库

一、问题描述&#xff1a; 在Google Play上提交了app bundle后&#xff0c;提示如下错误。 我使用的是Unity 2022.01.20f1&#xff0c;看来用的Play结算库版本是4.0 查了一下文档&#xff0c;Google Play结算库的维护周期是两年。现在需要更新到至少6.0。 二、更新过程 1. 下…

【视频目标分割-2024CVPR】Putting the Object Back into Video Object Segmentation

Cutie 系列文章目录1 摘要2 引言2.1背景和难点2.2 解决方案2.3 成果 3 相关方法3.1 基于记忆的VOS3.2对象级推理3.3 自动视频分割 4 工作方法4.1 overview4.2 对象变换器4.2.1 overview4.2.2 Foreground-Background Masked Attention4.2.3 Positional Embeddings 4.3 Object Me…

cpp,git,unity学习

c#中的? 1. 空值类型&#xff08;Nullable Types&#xff09; ? 可以用于值类型&#xff08;例如 int、bool 等&#xff09;&#xff0c;使它们可以接受 null。通常&#xff0c;值类型不能为 null&#xff0c;但是通过 ? 可以表示它们是可空的。 int? number null; // …

使用 SSH 连接 Docker 服务器:IntelliJ IDEA 高效配置与操作指南

使用 SSH 连接 Docker 服务器&#xff1a;IntelliJ IDEA 高效配置与操作指南 本文详细介绍了如何在 2375 端口未开放的情况下&#xff0c;通过 SSH 连接 Docker 服务器并在 Idea 中进行开发。通过修改用户权限、生成密钥对以及配置 SSH 访问&#xff0c;用户可以安全地远程操作…

NASA数据集:ATLAS/ICESat-2 L3B 每日和每月网格化海冰自由面高度,第 4 版

目录 简介 摘要 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 ATLAS/ICESat-2 L3B Daily and Monthly Gridded Sea Ice Freeboard, Version 4 简介 ATLAS/ICESat-2 L3B Daily and Monthly Gridded Sea Ice Freeboard, Version 4数据是由NASA的ATLAS&#xff08…

Ubuntu 系统崩了,如何把数据拷下来

问题描述&#xff1a; Linux系统中安装输入法后&#xff0c;重启后&#xff0c;导致系统无法进入&#xff0c;进入 recovery mode下的resume 也启动不了&#xff0c;所以决定将需要的东西复制到U盘 解决方案&#xff1a; 1.重启ubuntu&#xff0c;随即点按Esc进入grub菜单&am…