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

【笔试强训day19】

目录

第一题:小易的升级之路

描述

输入描述:

输出描述:

输入:

输出:

第二题:礼物的最大价值 

描述

输入:

返回值:

备注:

 第三题:对称之美

题目描述

输入描述:

输出描述:

输入

输出


第一题:小易的升级之路

题目链接:小易的升级之路_牛客题霸_牛客网

描述

小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依次遇见n个怪物,每个怪物的防御力为b1,b2,b3...bn. 如果遇到的怪物防御力bi小于等于小易的当前能力值c,那么他就能轻松打败怪物,并 且使得自己的能力值增加bi;如果bi大于c,那他也能打败怪物,但他的能力值只能增加bi 与c的最大公约数.那么问题来了,在一系列的锻炼后,小易的最终能力值为多少?

输入描述:

输入有多组数据。

对于每组数据,第一行是两个整数 𝑛(1≤𝑛≤1𝑒5)表示怪物的数量和 𝑎表示小易的初始能力值。

接下来的 𝑛行,每行一个整数  𝑏(1≤𝑏≤𝑛)表示每个怪物的防御力。

输出描述:

对于每组数据,输出一行。每行仅包含一个整数,表示小易的最终能力值

示例1

输入:

3 50
50
5
30
2 10
50
30

输出:

135
30

简单的模拟题。 这里面涉及如何求最大公约数的问题,掌握了这一点在注意数据范围即可。

#include <iostream>
using namespace std;long long n, a;
//求最大公约数
int gcd(int i, int j)
{int k = 0;while(j){k = i % j;i = j;j = k;}return i;
}
int main() 
{while(cin >> n >> a){while(n--){int x;cin >> x;if(a >= x) a += x;else a += gcd(a, x);}cout << a << endl;}return 0;
}

 

第二题:礼物的最大价值 

题目链接:礼物的最大价值_牛客题霸_牛客网

描述

在一个𝑚×n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?

如输入这样的一个二维数组,
[
[1,3,1],
[1,5,1],
[4,2,1]
]

那么路径 1→3→5→2→1 可以拿到最多价值的礼物,价值为12

示例1

输入:

[[1,3,1],[1,5,1],[4,2,1]]

返回值:

12

备注:

∙ 0<grid.length≤200∙ 
∙ 0<grid[0].length≤200∙ 

这是一道典型的dp问题。 

经典五部曲:

1)状态表示:dp[i]][jj]表示走到(i,j)位置时得到礼物的最大价值。

2)状态转移方程:根据题意,走到(i,j)位置有两种情况,一是从(i - 1,j)走到(i,j),二是从(i,j - 1)。取这两种情况的最大值即可。

dp[i][j] = max(dp[i - 1][j] ,dp[ i ][j - 1])+ grid[ i ] [ j]即可。

因为为了防止越界,写代码是把dp表多加了一行和一列。如上图总的黄线部分。所以映射到grid数组的 i 和 j 要相应的减1.所以最终转态转移方程为:

dp[i][j] = max(dp[i - 1][j] ,dp[ i ][j - 1])+ grid[ i - 1] [ j - 1]

3)初始化:多加的一行和一列因为是非法的位置,没有礼物,直接初始化为0即可。

4)填表顺序:根据依赖关系,从上到下,从左到右填表即可。

5)返回值:dp[row][col]

class Solution {
public:int dp[210][210];int maxValue(vector<vector<int> >& grid) {int row = grid.size(), col = grid[0].size();for(int i = 1; i <= row; i++){for(int j = 1; j <= col; j++){//注意多加一行和多加一列后的映射关系dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) + grid[i - 1][j - 1];}}return dp[row][col];}
};

 第三题:对称之美

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

题目描述

给出n个字符串,从第1个字符串一直到第n个字符串每个串取一个字母来构成一个新字符串,新字符串的第i个字母只能从第i行的字符串中选出,这样就得到了一个新的长度为n的字符串,请问这个字符串是否有可能为回文字符串?

输入描述:

第一行一个数字 t,1≤t≤50,代表测试数据的组数

每组测试数据先给出一个数字 n,然后接下来n行每行一个只由小写字母组成的字符串 si。

1≤n≤100,1≤∣si∣≤501 \le n \le 100, 1\le |s_i| \le501≤n≤100,1≤∣si​∣≤50

输出描述:

在一行中输出 “Yes” or “No”

示例1

输入

2
1
a
3
a
b
c

输出

Yes

No

双指针。两个指针分别从两端开始向中间靠拢,如果left对应的字符串和right指向的字符串中有相同的字符,那么就有可能组成回文串。反之,则不可能。现在问题的关键就剩下了如何判断left对应的字符串中和right对应的字符创中有相同的字符?hash数组,可以用一个hash数组先把right对应的字符串中的字符先丢入hash中,然后在去遍历left对应的字符串,判断left字符串中出现的字符有没有在hash数组中出现过即可。但是写代码的时候还是会有一些细节的,我会在代码中添加注释哈~ 

#include <iostream>
#include <string>
#include <vector>using namespace std;//判断是否可以组成回文串
bool isOk()
{int n;cin >> n;vector<string> arr(n);for(int i = 0; i < n; i++) cin >> arr[i];//读入n个字符串//双指针遍历int left = 0, right = n - 1;while(left < right){int hash[26] = { 0 };bool flag = false;//退出循环的标志位for(auto ch : arr[right]) hash[ch - 'a']++;//将right字符串中的字符丢入hash数组中for(auto ch : arr[left])//遍历left字符串,判断left和right有没有共同的字符{if(hash[ch - 'a'] > 0)//说明有相同的字符{left++;right--;flag = true;break;}}//因为退出内层for循环的原因可能是break出来的//也可能是遍历结束后没找到相同的字符后退出的,需要用flag来区分if(flag == false) return false;}return true;
}
int main()
{int t;cin >> t;while(t--){if(isOk()) cout << "Yes" << endl;else cout << "No" << endl;}return 0;
}

相关文章:

【笔试强训day19】

目录 第一题&#xff1a;小易的升级之路 描述 输入描述&#xff1a; 输出描述&#xff1a; 输入&#xff1a; 输出&#xff1a; 第二题&#xff1a;礼物的最大价值 描述 输入&#xff1a; 返回值&#xff1a; 备注&#xff1a; 第三题&#xff1a;对称之美 题目描述…...

STM32电机库 电机控制特性

ST MC FW库提供FOC和六步法两种电机控制方式。这使得它能够驱动永磁同步电机 (PMSM) 和无刷直流电机 (BLDC)。FOC 更适合 PMSM,而六步法更适合 BLDC 电机。该固件可以驱动内嵌式PMSM 和标贴式PMSM。 ST Motor Control 固件库提供以下功能: FOC SVPWM 生成: 可配置的 PW…...

【Linux】42.网络基础(2.4)

文章目录 2.3 TCP协议2.3.10 拥塞控制2.3.11 延迟应答2.3.12 捎带应答2.3.13 面向字节流2.3.14 粘包问题2.3.15 TCP异常情况2.3.16 TCP小结2.3.17 基于TCP应用层协议 2.3 TCP协议 2.3.10 拥塞控制 虽然TCP有了滑动窗口这个大杀器, 能够高效可靠的发送大量的数据. 但是如果在刚…...

SPI接口DAC设备驱动与应用程序开发

本文章相关专栏往期内容&#xff0c;SPI子系统专栏&#xff1a; SPI通信协议与Linux设备驱动框架解析SPI传输与驱动框架的实现spidev.c&#xff1a;SPI设备驱动的核心实现逻辑 PCI/PCIe子系统专栏&#xff1a; 专栏地址&#xff1a;PCI/PCIe子系统PCIe设备MSI/MSI-X中断源码分析…...

第十六届蓝桥杯大赛软件赛省赛 Python 大学 B 组 满分题解

题面链接Htlang/2025lqb_python_b 个人觉得今年这套题整体比往年要简单许多&#xff0c;但是G题想简单了出大问题&#xff0c;预估50101015120860&#xff0c;道阻且长&#xff0c;再接再厉 代码仅供学习参考&#xff0c;满分为赛后洛谷中的测评&#xff0c;蓝桥杯官方测评待…...

数据库的种类及常见类型

一&#xff0c;数据库的种类 最常见的数据库类型分为两种&#xff0c;关系型数据库和非关系型数据库。 二&#xff0c;关系型数据库介绍 生产环境主流的关系型数据库有 Oracle、SQL Server、MySQL/MariaDB等。 关系型数据库在存储数据时实际就是采用的一张二维表&#xff0…...

vue文件预览docx-preview

1、在项目中引入插件docx-preview npm i docx-preview 此插件依赖jszip&#xff0c;所以还要下载jszip&#xff1a;npm i jszip 2、点击在线预览按钮请求接口获取文件流 const blob new Blob([resp.data]) const url URL.createObjectURL(blob);//浏览器本地存储不能直接…...

旧版 VMware 虚拟机迁移至 KVM 平台-案例2

项目背景 需将一台旧版 VMware 虚拟机&#xff08;VMDK 格式&#xff09;迁移至 KVM 虚拟化平台&#xff0c;具体要求如下&#xff1a; 格式转换&#xff1a;将 VMDK 转换为 QCOW2 格式。磁盘扩容&#xff1a;将原 40GB 磁盘扩展至 60GB。密码重置&#xff1a;修改 aiden 用户…...

若依代码生成器原理velocity模板引擎(自用)

1.源码分析 代码生成器:导入表结构(预览、编辑、删除、同步)、生成前后端代码 代码生成器表结构说明&#xff1a; 若依提供了两张核心表来存储导入的业务表信息&#xff1a; gen_table&#xff1a;存储业务表的基本信息 &#xff0c;它对应于配置代码基本信息和生成信息的页…...

OpenCV直方图均衡化全面解析:从灰度到彩色图像的增强技术

目录 一、直方图均衡化基础&#xff1a;原理与核心思想 二、彩色图像的直方图均衡化&#xff1a;挑战与解决方案 三、进阶技巧与注意事项 四、应用场景与典型案 一、直方图均衡化基础&#xff1a;原理与核心思想 1. 直方图的本质与作用 直方图是图像像素强度分布的统计图表…...

【Pandas】pandas DataFrame keys

Pandas2.2 DataFrame Indexing, iteration 方法描述DataFrame.head([n])用于返回 DataFrame 的前几行DataFrame.at快速访问和修改 DataFrame 中单个值的方法DataFrame.iat快速访问和修改 DataFrame 中单个值的方法DataFrame.loc用于基于标签&#xff08;行标签和列标签&#…...

Web前端之Vue+Element实现表格动态复杂的合并行功能、localeCompare、forEach、table、push、sort、Map

MENU 效果图公共数据数据未排序时&#xff08;需要合并的行数据未处于相邻位置&#xff09;固定合并行方法&#xff08;写死&#xff09;动态合并行&#xff0c;行数计算方法当太合并行&#xff0c;合并方法方法&#xff08;函数&#xff09;执行 效果图 公共数据 Html <e…...

【DDR 内存学习专栏 1.4 -- DDR 的 Bank Group】

文章目录 BankgroupBankgroup 与 Bank 的关系 DDR4 中的 BankgroupDDR4-3200 8Gb芯片为例组织结构访问场景 实际应用示例 Bankgroup Bankgroup是DDR4及后续标准(DDR5)中引入的一个更高层次的组织结构。它将多个Bank组合在一起形成一个Bankgroup&#xff0c;目的是为了进一步提…...

嵌入式进阶:如何选择合适的开发平台?

随着现代工业、物联网以及人工智能技术的迅速发展&#xff0c;嵌入式系统已经由简单的控制器向复杂的高性能系统迈进。从传统家电到智能机器人、从自动驾驶汽车到工业自动化&#xff0c;每一项应用都对嵌入式系统的响应速度、运行稳定性和能耗管理提出了更高要求。在这种背景下…...

【HTML】动态背景效果前端页面

下面是一个带有多种动态背景效果的现代化前端页面&#xff0c;包含粒子效果、渐变波浪和星空背景三种可选动态背景。直接上代码&#xff01;! <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name&quo…...

酶动力学参数预测,瓶颈识别……中科院深圳先进技术研究院罗小舟分享AI在酶领域的创新应用

蛋白质&#xff0c;作为生命的基石&#xff0c;在生命活动中发挥着关键作用&#xff0c;其结构和功能的研究&#xff0c;对创新药物研发、合成生物学、酶制剂生产等领域&#xff0c;有着极其重要的意义。但传统蛋白质设计面临诸多难题&#xff0c;蛋白质结构复杂&#xff0c;序…...

【Redis】布隆过滤器应对缓存穿透的go调用实现

布隆过滤器 https://pkg.go.dev/github.com/bits-and-blooms/bloom/v3 作用&#xff1a; 判断一个元素是不是在集合中 工作原理&#xff1a; 一个位数组&#xff08;bit array&#xff09;&#xff0c;初始全为0。多个哈希函数&#xff0c;运算输入&#xff0c;从而映射到位数…...

【LLM】解锁Agent协作:深入了解谷歌 A2A 协议与 Python 实现

人工智能&#xff08;AI&#xff09;智能体正迅速成为企业提高生产力、自动化工作流程和增强运营能力的关键工具。从处理日常重复性任务到协助复杂的决策&#xff0c;智能体的潜力巨大。然而&#xff0c;当这些智能体来自不同的供应商、使用不同的框架或被限制在孤立的数据系统…...

kafka4.0浅尝辄止

最近工作中接触消息队列比较多&#xff0c;前几周又看到kafka4.0发布&#xff0c;故写一篇博客对消息队列做一个复盘。 目录 消息队列对比1. Apache Kafka 4.02. RabbitMQ3. RocketMQ4. ActiveMQ5. Apache Pulsar6. NSQ kafka4.0鲜明的新特性Java 版本要求升级API 更新与精简移…...

数据库原理及应用mysql版陈业斌实验三

&#x1f3dd;️专栏&#xff1a;Mysql_猫咪-9527的博客-CSDN博客 &#x1f305;主页&#xff1a;猫咪-9527-CSDN博客 “欲穷千里目&#xff0c;更上一层楼。会当凌绝顶&#xff0c;一览众山小。” 目录 实验三多表查询 1.实验数据如下 student 表&#xff08;学生表&#…...

OpenHarmony - 小型系统内核(LiteOS-A)(二)

OpenHarmony - 小型系统内核&#xff08;LiteOS-A&#xff09;&#xff08;二&#xff09; 三、基础内核 3.1、中断及异常处理 基本概念 中断是指出现需要时&#xff0c;CPU暂停执行当前程序&#xff0c;转而执行新程序的过程。即在程序运行过程中&#xff0c;出现了一个必须…...

数字化引擎再升级:小匠物联十周年庆典与全链路创新实践

4月11日&#xff0c;浙江宁波的小匠物联十周年庆典拉开帷幕。本次活动以“拾阶而上&#xff0c;智创未来”为主题&#xff0c;从全员签到、心愿书写&#xff0c;到董事长致辞、切蛋糕及全体合影&#xff0c;每一个环节都精心设计&#xff0c;展现出企业在家用物联网领域的卓越技…...

机器学习核心知识:从基础概念到关键算法

摘要 本文深度剖析机器学习知识体系&#xff0c;从基本概念、学习方式&#xff0c;到分类算法、逻辑回归等关键内容均有涉及。详细阐述各知识点原理与应用场景&#xff0c;并对比多种算法的优劣。 关键词&#xff1a;机器学习&#xff1b;监督学习&#xff1b;分类算法&#x…...

开发工具-jetbrains使用技巧

更详细的可以看 狂神说Java】JavaWeb入门到实战 p6 idea中maven的操作 可以设置怎么调试 然后还可以wsl、远程方式等运行 maven 这里的相当于cmd的操作 命令行去执行这些东西...

HarmonyOS:页面滚动时标题悬浮、背景渐变

一、需求场景 进入到app首页或者分页列表首页时&#xff0c;随着页面滚动&#xff0c;分类tab要求固定悬浮在顶部。进入到app首页、者分页列表首页、商品详情页时&#xff0c;页面滚动时&#xff0c;顶部导航栏&#xff08;菜单、标题&#xff09;背景渐变。 二、相关技术知识点…...

Python——Matplotlib库的练习

1、 import matplotlib.pyplot as plt import numpy as npx np.linspace(0,2*np.pi,100) y1 np.sin(x) y2 np.cos(x)plt.plot(x,y1,"r--o",linewidth1.5,markersize6) plt.plot(x,y2,"g-s",linewidth2,markersize8)plt.show() 2、 import matplotlib…...

信息系统项目管理师-第十八章-项目绩效域

本文章记录学习过程中,重要的知识点,是否为重点的依据,来源于官方教材和历年考题,持续更新共勉 本文章记录学习过程中,重要的知识点,是否为重点的依据,来源于官方教材和历年考题,持续更新共勉 在整个生命周期过程中,项目管理者需要始终坚持项目管理原则,通过涵盖 10 …...

Windows 操作系统 - Windows 10 磁盘管理无法为 C 盘选择扩展卷

Windows 10 磁盘管理无法为 C 盘选择扩展卷 在 Windows 10 的磁盘管理中&#xff0c;无法为 C 盘选择扩展卷&#xff08;选项灰色不可用&#xff09;&#xff0c;主要原因是未分配空间没有紧邻 C 盘的右侧 补充&#xff1a;Windows 10 磁盘管理打开方式 1. 按下快捷键【Win …...

[NOIP 2003 普及组] 栈 Java

import java.io.*;public class Main {public static void main(String[] args) throws IOException {BufferedReader br new BufferedReader(new InputStreamReader(System.in));int n Integer.parseInt(br.readLine());int[] dp new int[n 1];dp[0] 1; // 空序列只有一种…...

C++ (类的设计,对象的创建,this指针,构造函数)

类的设计 C对结构体是有增强的 可以包含函数作为结构体成员 可以直接定义变量 在结构体成员函数里面可以直接访问结构体成员变量 struct student{string name;int age;float score;void play_game(const string &name);}void student::play_game(const string game){}…...