当前位置: 首页 > news >正文

【c++笔试强训】(第三十二篇)

目录

数组变换(贪⼼+位运算)

题目解析

讲解算法原理

编写代码

装箱问题(动态规划-01背包)

题目解析

讲解算法原理

编写代码


数组变换(贪⼼+位运算)

题目解析

1.题目链接:数组变换__牛客网

2.题目描述
 

牛牛有一个数组,里面的数可能不相等,现在他想把数组变为:所有的数都相等。问是否可行。
牛牛可以进行的操作是:将数组中的任意一个数改为这个数的两倍。

这个操作的使用次数不限,也可以不使用,并且可以对同一个位置使用多次。

数据范围:数组大小满足 1≤n≤50 1 \le n \le 50 \ 1≤n≤50  ,数组中的数满足 1≤val≤109 1 \le val \le 10^{9} \ 1≤val≤109 

输入描述:

输入一个正整数N (N <= 50)
接下来一行输入N个正整数,每个数均小于等于1e9.

输出描述:

假如经过若干次操作可以使得N个数都相等,那么输出"YES", 否则输出"NO"

示例1

输入

2
1 2

输出

YES

示例2

输入

3
1 2 3

输出

NO

讲解算法原理

解法:
算法思路:

如果能够变换成功,那么最⼤的数除以剩下的数的商,⼀定都是2的n次⽅。

编写代码

c++算法代码:

#include <iostream>
using namespace std;
int b;
int n;
int arr[51];
bool fun()
{for(int i = 0; i < n; i++){if(b % arr[i]) return false; int x = b / arr[i]; if(x - (x & -x)) return false; } return true;
}
int main()
{cin >> n;for(int i = 0; i < n; i++){cin >> arr[i]; b = max(b, arr[i]); }if(fun()) cout << "YES" << endl; else cout << "NO" << endl;return 0;
}

Java算法代码:

import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main
{public static void main(String[] args) {Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] arr = new int[n]; int b = 0;for(int i = 0; i < n; i++){arr[i] = in.nextInt(); b = Math.max(b, arr[i]); }boolean flag = true; for(int i = 0; i < n; i++) { if(b % arr[i] != 0) { flag = false; break;}int x = b / arr[i]; if((x - (x & -x)) != 0) { flag = false; break;}}if(flag) System.out.println("YES"); else System.out.println("NO"); }
}

装箱问题(动态规划-01背包)

题目解析

1.题目链接:登录—专业IT笔试面试备考平台_牛客网

2.题目描述

题目描述

有一个箱子容量为V(正整数,0 ≤ V ≤ 20000),同时有n个物品(0<n ≤ 30),每个物品有一个体积(正整数)。
要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。

输入描述:

1个整数,表示箱子容量
1个整数,表示有n个物品
接下来n行,分别表示这n个物品的各自体积

输出描述:

1个整数,表示箱子剩余空间。

示例1

输入

24 6 8 3 12 7 9 7

24
6
8
3
12
7
9
7

输出

0

0

讲解算法原理

解法:
算法思路:

01背包简单应⽤。

编写代码

c++算法代码:

#include <iostream>
using namespace std;
const int N = 35, M = 2e4 + 10;
int n, v;
int arr[N];
int dp[N][M];
int main()
{cin >> v >> n;for(int i = 1; i <= n; i++){cin >> arr[i];}for(int i = 1; i <= n; i++){for(int j = 0; j <= v; j++){dp[i][j] = dp[i - 1][j]; if(j >= arr[i]){dp[i][j] = max(dp[i][j], dp[i - 1][j - arr[i]] + arr[i]);}}}cout << (v - dp[n][v]) << endl;return 0;
}

Java算法代码:

import java.util.*;
public class Main
{public static void main(String[] args){Scanner in = new Scanner(System.in); int v = in.nextInt(); int n = in.nextInt(); int[] arr = new int[n + 1];for(int i = 1; i <= n; i++){arr[i] = in.nextInt();}int[][] dp = new int[n + 1][v + 1]; for(int i = 1; i <= n; i++) { for(int j = 0; j <= v; j++) { dp[i][j] = dp[i - 1][j]; if(j >= arr[i]){dp[i][j] = Math.max(dp[i][j], dp[i - 1][j - arr[i]] + arr[i]); }}}System.out.println(v - dp[n][v]);}
}

相关文章:

【c++笔试强训】(第三十二篇)

目录 数组变换&#xff08;贪⼼位运算&#xff09; 题目解析 讲解算法原理 编写代码 装箱问题&#xff08;动态规划-01背包&#xff09; 题目解析 讲解算法原理 编写代码 数组变换&#xff08;贪⼼位运算&#xff09; 题目解析 1.题目链接&#xff1a;数组变换__牛客网…...

shell脚本实战案例

文章目录 实战第一坑功能说明脚本实现 实战第一坑 实战第一坑&#xff1a;在Windows系统写了一个脚本&#xff0c;比如上面&#xff0c;随后上传到服务&#xff0c;执行会报错 原因&#xff1a; 解决方案&#xff1a;在linux系统touch文件&#xff0c;并通过vim添加内容&…...

OpenCV-图像阈值

简单阈值法 此方法是直截了当的。如果像素值大于阈值&#xff0c;则会被赋为一个值&#xff08;可能为白色&#xff09;&#xff0c;否则会赋为另一个值&#xff08;可能为黑色&#xff09;。使用的函数是 cv.threshold。第一个参数是源图像&#xff0c;它应该是灰度图像。第二…...

lvgl9 Line(lv_line) 控件使用指南

文章目录 前言主体1. **Line 控件概述**2. **使用场景**3. **控件的样式**4. **设置点**5. **自动大小**6. **y 坐标反转**7. **事件处理**8. **示例代码** 总结 前言 在图形界面设计中&#xff0c;直线绘制是非常常见且重要的功能之一&#xff0c;尤其是在需要进行图形表示、…...

区块链概念 Web 3.0 实操

1. Web 3.0 概述 1.1 定义与背景 Web 3.0&#xff0c;也称为第三代互联网&#xff0c;是一个新兴的概念&#xff0c;它代表着互联网的未来发展和演进方向。Web 3.0的核心理念是去中心化、用户主权和智能化。这一概念的提出&#xff0c;旨在解决Web 2.0时代中用户数据隐私泄露…...

【人工智能】大数据平台技术及应用

文章目录 前言一、大数据平台基本概念及发展趋势1、数据量爆发式增长&#xff0c;发数据蓬勃发展2、大数据到底是什么&#xff1f;3、大数据处理与传统数据处理的差异4、为什么要建立大数据平台&#xff1f;5、大数据平台开源架构-Hadoop6、华为云大数据平台架构 二、大数据技术…...

Scala的模式匹配(7)

package hfdobject Test35 {case class Person(name:String)case class Student(name:String,className:String)//match case 能根据 类名和属性的信息&#xff0c;匹配到对应的类//注意&#xff1a;//1 匹配的时候&#xff0c;case class的属性个数要对上//2 数学名不需要一一…...

使用 MATLAB 绘制三维散点图:根据坐标和距离映射点的颜色和大小

在数据可视化中&#xff0c;三维散点图是一种非常直观的方式来展示数据的分布。MATLAB 提供了强大的 scatter3 函数&#xff0c;可以用来绘制三维散点图&#xff0c;而通过调整点的颜色和大小&#xff0c;可以进一步增强图形的表现力。 在本篇博客中&#xff0c;我们将逐步讲解…...

数仓技术hive与oracle对比(五)

附录说明 附录是对测试过程中涉及到的一些操作进行记录和解析。 oracle清除缓存 alter system flush shared_pool; 将使library cache和data dictionary cache以前保存的sql执行计划全部清空&#xff0c;但不会清空共享sql区或者共享pl/sql区里面缓存的最近被执行的条目。刷…...

金融数学在股市交易中的具体应用

### 1. 风险管理 - **VaR&#xff08;在险价值&#xff09;**: VaR是衡量投资组合潜在损失的指标。例如&#xff0c;如果一个投资组合的VaR为100万元&#xff0c;置信水平为95%&#xff0c;这意味着在未来的一个交易日内&#xff0c;有95%的可能性该投资组合的损失不会超过100…...

Spring6:1 概述

Spring6&#xff1a;1 概述 标签 JAVASpring 目录 Spring 是什么&#xff1f;Spring 的狭义和广义 广义的 Spring&#xff1a;Spring 技术栈狭义的 Spring&#xff1a;Spring Framework Spring Framework 特点Spring 模块组成Spring6 特点 版本要求本课程软件版本 1. 概述 …...

Python Selenium 各浏览器驱动下载与配置使用(详细流程)

1、安装 pip install selenium 2、浏览器驱动下载 Chrome(google)浏览器驱动 下载地址&#xff1a;http://chromedriver.storage.googleapis.com/index.html 或 https://sites.google.com/a/chromium.org/chromedriver/home . 下载地址&#xff1a;http://chromedriver.stor…...

C语言期末考试——重点考点

目录 1.C语言的结构 2.三种循环结构 3.逻辑真假判断 4. printf函数 5. 强制类型转化 6. 多分支选择结构 7. 标识符的定义 8. 三目运算符 1.C语言的结构 选择结构、顺序结构、循环结构 2.三种循环结构 for、while、do-while 3.逻辑真假判断 C语言用0表示false,用非0(不…...

mongo开启慢日志及常用命令行操作、数据备份

mongo开启慢日志及常用命令行操作、数据备份 1.常用命令行操作2.mongo备份3.通过命令临时开启慢日志记录4.通过修改配置开启慢日志记录 1.常用命令行操作 连接命令行 格式&#xff1a;mongo -u用户名 -p密码 --host 主机地址 --port 端口号 库名&#xff1b; 如&#xff1a;连…...

Mybatis-Plus的主要API

一、实体类操作相关API BaseMapper<T>接口 功能&#xff1a;这是 MyBatis - Plus 为每个实体类对应的 Mapper 接口提供的基础接口。它提供了一系列基本的 CRUD&#xff08;增删改查&#xff09;操作方法。例如insert(T entity)方法用于插入一条记录&#xff0c;d…...

2023 年“泰迪杯”数据分析技能赛B 题企业财务数据分析与造假识别

2023 年“泰迪杯”数据分析技能赛B 题企业财务数据分析与造假识别 一、背景 财务数据是指企业经营活动和财务结果的数据记录&#xff0c;反映了企业的财务状况 与经营成果。对行业、企业的财务数据进行分析&#xff0c;就是要评价其过去的经营业绩、 衡量现在的财务状况、预测…...

【SpringMVC】参数传递 重定向与转发 REST风格

文章目录 参数传递重定向与转发REST风格 参数传递 ModelAndView&#xff1a;包含视图信息和模型数据信息 public ModelAndView index1(){// 返回页面ModelAndView modelAndView new ModelAndView("视图名");// 或// ModelAndView modelAndView new ModelAndView(…...

性能测试需求分析(超详细总结)

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、客户方提出 客户方能提出明确的性能需求&#xff0c;说明对方很重视性能测试&#xff0c;这样的企业一般是金融、电信、银行、医疗器械等&#xff1b;他们…...

显卡(Graphics Processing Unit,GPU)架构详细解读

显卡架构主要分为两大类&#xff1a;GPU 核心架构&#xff08;也称为图形处理单元架构&#xff09;和显卡的其他组件&#xff08;如内存、控制器、输出接口等&#xff09;。本篇文章将对显卡架构进行详细分析&#xff0c;重点介绍 GPU 核心架构、显卡计算单元、显存结构、显卡管…...

【大语言模型】ACL2024论文-24 图像化歧义:Winograd Schema 挑战的视觉转变

【大语言模型】ACL2024论文-24 图像化歧义&#xff1a;Winograd Schema 挑战的视觉转变 目录 文章目录 【大语言模型】ACL2024论文-24 图像化歧义&#xff1a;Winograd Schema 挑战的视觉转变目录摘要研究背景问题与挑战如何解决核心创新点算法模型实验效果&#xff08;包含重要…...

深入解析Umi-OCR:开源离线OCR工具的技术架构与实践应用

深入解析Umi-OCR&#xff1a;开源离线OCR工具的技术架构与实践应用 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片&#xff0c;PDF文档识别&#xff0c;排除水印/页眉页脚&#xff0c;扫描/生成二维码。内置多国语…...

零基础转行网安:3个月学习路线+就业方向(2026最新)

零基础转行网安&#xff1a;3 个月学习路线 就业方向&#xff08;2026 最新&#xff09; 最近刷到很多小白在问&#xff1a; “2026 年零基础还能转行网安吗&#xff1f;”“没有学历、没有基础、不会代码&#xff0c;多久能找到工作&#xff1f;”“网上教程杂乱&#xff0c…...

5种高效集成方案:Bilibili视频解析API的终极实用指南

5种高效集成方案&#xff1a;Bilibili视频解析API的终极实用指南 【免费下载链接】bilibili-parse bilibili Video API 项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse bilibili-parse是一款基于PHP实现的B站视频解析API工具&#xff0c;通过简洁优雅的技…...

DuckDuckGo AI本地代理服务:开源工具部署与API调用指南

1. 项目概述&#xff1a;一个为DuckDuckGo AI聊天功能提供本地化服务的开源工具如果你和我一样&#xff0c;是个重度搜索用户&#xff0c;同时又对AI聊天功能有高频需求&#xff0c;那你肯定对DuckDuckGo不陌生。作为一个主打隐私保护的搜索引擎&#xff0c;它最近也跟上了潮流…...

Windows上安装Android应用的终极指南:告别模拟器,开启全新跨平台体验

Windows上安装Android应用的终极指南&#xff1a;告别模拟器&#xff0c;开启全新跨平台体验 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾在Windows电脑上渴…...

051岛屿数量

岛屿数量 题目链接&#xff1a;https://leetcode.cn/problems/number-of-islands/description/?envTypestudy-plan-v2&envIdtop-100-liked 我的解答&#xff1a; public int numIslands(char[][] grid) {int m grid.length, n grid[0].length;int[][] directions new i…...

量子错误校正与机器学习中的辅助比特影响研究

1. 量子错误校正与量子机器学习的基础概念量子计算的核心挑战之一是量子态的脆弱性。与环境相互作用导致的退相干效应会迅速破坏量子信息&#xff0c;这使得量子错误校正&#xff08;QEC&#xff09;成为实现实用量子计算的关键技术。在传统量子计算中&#xff0c;QEC通过冗余编…...

一个经典嵌入式问题:如何安全读取 64 位计时器

在一个嵌入式系统中&#xff0c;需要读取一个持续自增的 64-bit 硬件计时器。由于系统只能通过 32-bit MMIO register 访问该计时器&#xff0c;所以硬件把它拆成两个 32-bit 寄存器&#xff1a;#define TIMER_LOW_ADDR 0x40001000 #define TIMER_HIGH_ADDR 0x40001010其中&…...

魔兽争霸3终极优化指南:三步告别卡顿与显示异常

魔兽争霸3终极优化指南&#xff1a;三步告别卡顿与显示异常 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代电脑上的卡顿、掉帧…...

二叉树‘找叶子’的三种姿势:从PTA真题到LeetCode变体(层次/先序/后序遍历对比)

二叉树‘找叶子’的三种姿势&#xff1a;从PTA真题到LeetCode变体&#xff08;层次/先序/后序遍历对比&#xff09; 在算法学习的道路上&#xff0c;二叉树遍历是每个程序员必须掌握的基本功。而"找叶子节点"这一看似简单的任务&#xff0c;却能衍生出多种解法&…...