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

【C++】 —— 笔试刷题day_19

一、小易的升级之路

题目解析

在这里插入图片描述

小易现在要打游戏,现在游戏角色的初始能力值为a,我们会遇到n个怪,这些怪物的防御值为b1、b2、b3...,如果我们的能力值要高于或者等于怪物的防御值,那我们的能力值就会加bi;如果不大于怪物的防御值,我们的能力值就加当前能力值和bi的最大公约数。

我们要求出来小易的最终能力值。

算法思路

这道题,也是一道很简单的模拟题目了,直接模拟整个过程即可。

当前能力值为c,如果c>=bi,那能力值就加上bi

如果c<bi,那能力值就加上cbi的最大公约数。

代码实现

这里要注意的是:题目是多组输入,我们这里要用while(cin>>n>>c)来进行多组输入

#include <iostream>
using namespace std;int min_y(int x, int y) {int tmp = x % y;while (tmp) {x = y;y = tmp;tmp = x % y;}return y;
}
int main() {int c, n;while (cin >> n >> c) {for (int i = 0; i < n; i++) {int x;cin >> x;if (c >= x)c += x;elsec += min_y(x, c);}cout << c << endl;}return 0;
}

二、礼物的最大价值

题目解析

在这里插入图片描述

题目给了一个m*n的棋盘,每一个格子里面都放着一个礼物,每一个礼物都有一定价值;现在我们从左上角开始拿礼物,我们只能向右或者向下移动一格,直到棋盘的右下角;我们要计算最多可以拿到多少价值的礼物。

给定一个二维数组,每一个位置的值就表示该位置礼物的价值,我们从(1,1)位置开始,向右或者向下走,直到(m,n)位置,求最多可以拿到多少价值的礼物。

算法思路

这道题呢,算是一道路径问题,解法呢就是动态规划

题目中说,我们可以向右和向下走,也就是从[i,j]位置移动到[i][j+1]位置和[i+1][j]位置(我们反过来理解就是,要走到[i,j]位置,只能从[i][j-1][i-1][j]两个位置走过去,那走到[i,j]位置能拿到礼物的最大价值就等于,走到[i,j-1][i-1][j]位置能拿到礼物的最大价值的最大值再加上[i,j]位置礼物的价值。

动态规划思路:

状态表示:dp[i][j]表示走到[i,j]位置能拿到礼物的最大价值。

状态转移方程:dp[i][j] = max(dp[i][j-1] , dp[i-1][j]) + arr[i][j]

在这里插入图片描述

代码实现

这里要注意

下标对应,题目给的数组grid下标是从(0,0)开始的,而我们的dp表为了方便初始化,下标是从(1,1)开始的。

所以对于(i,j)位置,该位置礼物的价值是存在(i-1,j-1)中的。

class Solution {
public:int dp[201][201] = {0};int maxValue(vector<vector<int> >& grid) {// write code hereint m = grid.size();int n = grid[0].size();for(int i = 1;i<=m;i++){for(int j = 1;j<=n;j++){dp[i][j] = max(dp[i][j-1], dp[i-1][j]) + grid[i-1][j-1]; }}return dp[m][n];}
};

三、对称之美

题目解析

在这里插入图片描述

这里,题目给出n个字符串,让第1个字符到第n个字符,每一个字符取出一个字符,这样组成一个新的字符串,让我们判断这个新的字符串是否可能是一个回文字符串;如果也可能输出Yes,否则就输出No

题目有t组数据,对于每一组数据,我们都要进行判断并输出结果。

算法思路

这道题初看可能有一点思路,但不多;

对于n个字符串,每一个字符串取一个字符组成的新字符串,能否构成回文字符串;(对于回文字符串,我们知道,第1哥和第n个、第2个和第n-1个…这些字符都是相同的

我们就非常好判断了,定义lr分别从两边开始遍历字符数组,我们只需要判断l位置字符串和r位置字符串是否存在相同的字符就OK了。

思路:双指针 + 判断两个字符串是否存在相同的字符。

那么现在问题就变成了:如何判断两个字符串存在相同的字符?

那判断两个字符串中是否存在相同的字符,方法就很简单了:使用hash表计数。

首先遍历第一个字符串,将所有出现的字符放到hash表中,让遍历第二个字符串判断是否存在相同的字符即可。

在这里插入图片描述

代码实现

#include <iostream>
#include <vector>
#include <unordered_set>
using namespace std;bool func(string& str1, string& str2)
{unordered_set<char> hash;for(int i = 0;i<str1.size();i++){hash.insert(str1[i]);}bool b = false;for(int i = 0;i<str2.size();i++){if(hash.count(str2[i])){b = true;break;}}return b;
}
int main()
{int n;cin>>n;while(n--){int k;cin>>k;vector<string> arr(k);for(int i = 0;i<k;i++){cin>>arr[i];}int l = 0,r = k-1;//判断两个字符串中是否存在相同的字符bool ret = true;while(l<k){if(func(arr[l],arr[r]) == false){ret = false;break;}l++;r--;}if(ret)cout<<"Yes"<<endl;elsecout<<"No"<<endl;}return 0;
}

相关文章:

【C++】 —— 笔试刷题day_19

一、小易的升级之路 题目解析 小易现在要打游戏&#xff0c;现在游戏角色的初始能力值为a&#xff0c;我们会遇到n个怪&#xff0c;这些怪物的防御值为b1、b2、b3...&#xff0c;如果我们的能力值要高于或者等于怪物的防御值&#xff0c;那我们的能力值就会加bi&#xff1b;如…...

解决 Spring Boot 多数据源环境下事务管理器冲突问题(非Neo4j请求标记了 @Transactional 尝试启动Neo4j的事务管理器)

0. 写在前面 到底遇到了什么问题&#xff1f; 简洁版&#xff1a; 在 Oracle 与 Neo4j 共存的多数据源项目中&#xff0c;一个仅涉及 Oracle 操作的请求&#xff0c;却因为 Neo4j 连接失败而报错。根本原因是 Spring 的默认事务管理器错误地指向了 Neo4j&#xff0c;导致不相…...

Oracle日志系统之重做日志和归档日志

Oracle日志系统之重做日志和归档日志 重做日志归档日志 本文讨论Oracle日志系统中对数据恢复非常重要的两个日志&#xff1a;重做日志和归档日志。 重做日志 重做日志&#xff0c;英文名Redo Log&#xff0c;顾名思义&#xff0c;是用来数据重做的&#xff0c;主要使用场景是事…...

Kubernetes》》K8S》》Pod的健康检查

K8s概念总结 》》》Pod的生命周期阶段 Pod的生命周期可以简单描述&#xff1a;首先Pod被创建&#xff0c;紧接着Pod被调度到Node节点进行部署。 Pod是非常忠诚的&#xff0c;一旦被分配到Node节点后&#xff0c;就不会离开这个Node节点&#xff0c;直到它被删除&#xff0c;删除…...

计算机视觉——基于使用 OpenCV 与 Python 实现相机标定畸变校正

概述 相机标定是一种旨在通过确定相机的内参&#xff08;焦距、光学中心、畸变系数&#xff09;和外参&#xff08;相机的位置和方向&#xff09;&#xff0c;提高图像在现实世界中的几何精度的过程。该过程可以纠正相机拍摄的图像中的畸变&#xff0c;使相机能够准确感知现实…...

Python作业4 文本词云统计,生成词云

编写程序&#xff0c;统计两会政府工作报告热词频率&#xff0c;并生成词云。 2025两会政府工作报告 import jieba import wordcloud from collections import Counter import re# 读取文件 with open("gov.txt", "r", encoding"gbk") as f:t …...

Jenkins 2.492.2 LTS 重置管理员密码

文章目录 1. Jenkins 关闭用户认证2. jenkins 修改密码 如果忘记了 Jenkins 的管理员密码的话&#xff0c;也不用担心&#xff0c;只要你有权限访问 Jenkins 的根目录&#xff0c;就可以轻松地重置密码。 1. Jenkins 关闭用户认证 // 查看 jenkins 家目录&#xff08;使用 doc…...

1. python开发小笔记

本文件记录一些实用的python小知识&#xff0c;会一直更新 1. import路径 1.1 python的import搜索路径可以用sys.path查看&#xff1a; import sys print(sys.path) 1.2 python的搜索目录有&#xff1a; 本脚本所在目录环境变量PYTHONPATH指定的目录标准库目录&#xff0c;通…...

【裁判文书网DES3数据解密】逆向分析

点击翻页&#xff0c;出现请求&#xff0c;可以看到请求参数有个ciphertext密文&#xff0c;响应数据也是密文 打上断点&#xff0c;点击翻页&#xff0c;断住 可以看到postData里面的ciphertext已经生成 往前跟栈&#xff0c;可以发现是var ciphertext cipher(); funct…...

探索 JavaScript 中的 Promise 高级用法与实战

在现代 Web 开发中&#xff0c;异步编程已成为不可或缺的一部分。JavaScript 作为 Web 开发的核心语言&#xff0c;提供了多种处理异步操作的方式&#xff0c;其中 Promise 对象因其简洁、强大的特性而备受青睐。本文将深入探讨 Promise 的高级用法&#xff0c;并结合实际案例&…...

【dify实战】agent结合deepseek实现基于自然语言的数据库问答、Echarts可视化展示、Excel报表下载

使用dify agent实现数据库智能问答&#xff0c;echarts可视化展示&#xff0c;excel报表下载 观看视频&#xff0c;您将学会 在dify下如何快速的构建一个agent&#xff0c;来完成数据分析工作&#xff1b;如何在AI的回复中展示可视化的图表&#xff1b;如何在AI 的回复中加入E…...

C++学习:六个月从基础到就业——面向对象编程:接口设计

C学习&#xff1a;六个月从基础到就业——面向对象编程&#xff1a;接口设计 本文是我C学习之旅系列的第十五篇技术文章&#xff0c;重点讨论在C中进行接口设计的原则、技术和最佳实践。查看完整系列目录了解更多内容。 引言 在面向对象的软件开发中&#xff0c;良好的接口设计…...

花园灌溉问题

#include <bits/stdc.h> using namespace std;// 设置最大行列数&#xff08;题目限制 n, m ≤ 100&#xff09; const int N 104;// 标记某个格子是否已经被水浇灌 bool used[N][N];// 队列&#xff0c;用于 BFS&#xff0c;存储当前水源的位置 queue<pair<int,i…...

《AI大模型应知应会100篇》第22篇:系统提示词(System Prompt)设计与优化

第22篇&#xff1a;系统提示词(System Prompt)设计与优化 摘要 在大语言模型&#xff08;LLM&#xff09;应用中&#xff0c;系统提示词&#xff08;System Prompt&#xff09;是控制模型行为的核心工具之一。它不仅定义了模型的身份、角色和行为规范&#xff0c;还直接影响输…...

Jsp技术入门指南【六】jsp脚本原理及隐式对象

Jsp技术入门指南【六】jsp脚本原理及隐式对象 前言一、JSP 脚本元素1.1 声明1.2 表达式1.3 脚本标签 二、JSP 的隐式对象是什么三、隐式对象详解outrequestsessionapplicationconfigexception 前言 在之前的博客中&#xff0c;我们已经介绍了JSP的环境搭建、编译文件查找以及生…...

transient关键字深度解析

Java transient 关键字深度解析 1. 核心概念 (1) 基本定义 作用:标记字段不参与序列化 适用场景: 敏感数据(如密码、密钥) 临时计算字段 依赖运行时环境的字段(如Thread对象) (2) 语法示例 java public class User implements Serializable {private String username…...

Jsp技术入门指南【五】详细讲解jsp结构页面

Jsp技术入门指南【五】详细讲解jsp结构页面 前言一、JSP页面的结构二、JSP页面的部件1. 指令&#xff08;核心控制部件&#xff09;2. 动作&#xff08;页面交互部件&#xff0c;了解即可&#xff09;3. 脚本&#xff08;Java逻辑嵌入部件&#xff09; 三、JSP指令详解1.1 JSP指…...

Beyond Compare 30天评估到期 解决方法

Beyond Compare 30天评估到期 解决方法 一、问题二、解决办法2.1 第一步&#xff1a;打开注册表2.2 第二步&#xff1a;删除cacheID 三、效果 一、问题 Beyond Compare提示评估到期&#xff0c;重装也无效&#xff0c;只需简单两步&#xff0c;轻轻松松出困境。 二、解决办法…...

探索蓝桥杯:嵌入式开发技巧分享与实践

在信息技术飞速发展的今天&#xff0c;嵌入式系统作为物联网和智能设备的核心技术之一&#xff0c;正扮演着愈发重要的角色。蓝桥杯作为国内知名的科技竞赛平台&#xff0c;为广大学生和科技爱好者提供了展示自己嵌入式开发能力的舞台。在这场竞赛中&#xff0c;参赛者不仅需要…...

Arduino无线体感机器手——问题汇总

文章不介绍具体参数&#xff0c;有需求可去网上搜索。 特别声明&#xff1a;不论年龄&#xff0c;不看学历。既然你对这个领域的东西感兴趣&#xff0c;就应该不断培养自己提出问题、思考问题、探索答案的能力。 提出问题&#xff1a;提出问题时&#xff0c;应说明是哪款产品&a…...

学习设计模式《一》——简单工厂

一、基础概念 1.1、接口 简单的说&#xff1a;接口是【用来实现类的行为定义、约束类的行为】&#xff08;即&#xff1a;定义可以做什么&#xff09;&#xff1b;接口可以包含【实例方法】、【属性】、【事件】、【索引器】或这四种成员类型的任意组合。 接口的优点&#xff1…...

python有序列表

您的代码整体结构良好&#xff0c;但存在一些关键错误和优化点。以下是对代码的详细评价及改进建议&#xff1a;---### 主要问题1. **add方法中的链表断裂问题**- **问题描述**&#xff1a;当向链表中间插入节点时&#xff0c;未正确设置新节点的next&#xff0c;导致后续节点丢…...

使用Lombok @Builder 收参报错提示没有无参构造方法的原因与解决办法

使用Lombok Builder 收参报错提示没有无参构造方法的原因与解决办法 类上加了Builder之后接口接收前端传来的参数报错&#xff1a;(no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) 1.解决办法…...

010数论——算法备赛

数论 模运算 一般求余都是对正整数的操作&#xff0c;如果对负数&#xff0c;不同编程语言结果可能不同。 C/javapythona>m,0<a%m<m-1 a<m,a%ma~5%32~-5%3 -21(-5)%(-3) -2~5%(-3)2-1正数&#xff1a;&#xff08;ab&#xff09;%m((a%m)(b%m))%m~正数&#xff…...

NAT、代理服务、内网穿透

NAT、代理服务、内网穿透 1、NAT1.1、NAT过程1.2、NAPT2、内网穿透3、内网打洞3、代理服务器3.1、正向代理3.2、反向代理1、NAT 1.1、NAT过程 之前我们讨论了IPv4协议中IP地址数量不充足的问题。NAT技术是当前解决IP地址不够用的主要手段,是路由器的一个重要功能。 NAT能够将…...

C# 点击导入,将需要的参数传递到弹窗的页面

点击导入按钮&#xff0c;获取本页面的datagridview标题的结构&#xff0c;并传递到导入界面。 新增一个datatable用于存储datagridview的caption和name&#xff0c;这里用的是devexpress组件中的gridview。 DataTable dt new DataTable(); DataColumn CAPTION …...

Linux 文件查找终极指南:find, locate, grep 等命令详解

在 Linux 系统管理和日常使用中,文件查找是一项不可或缺的基本技能。无论是寻找配置文件、查找日志文件中的特定错误,还是清理旧的临时文件,掌握高效的文件查找工具都能让你事半功倍。Linux 提供了多种强大的命令行工具来满足不同的查找需求。本文将详细介绍几个最常用、最强…...

嵌入式硬件常用总线接口知识体系总结和对比

0.前言 在嵌入式工程实现中,多多少少我们都使用过总线,各种各样的总线应用于不同场合,不同场景有不同的优势,但是我们在作为工程师过程中在如何选择项目合适的总线,根据什么来选?需要我们对项目全局和总线特征有所了解,本文目的就是对比多种总线的关键特征 我们在聊到…...

【unity实战】Unity动画层级(Animation Layer)的Sync同步和Timing定时参数使用介绍,同步动画层制作角色的受伤状态

文章目录 前言方案一&#xff1a;复制粘贴原有层级的状态机1、实现2、问题 方法二&#xff1a;勾选Sync同步动画层1、简单实现同步2、同步blend tree的问题3、动画状态的播放时长4、下层状态覆盖了上层状态 专栏推荐完结 前言 如何制作角色的受伤状态&#xff1f; 玩家角色在…...

Uniapp调用native.js使用经典蓝牙串口通讯方法及问题解决

本人尝试在uniapp环境下开发一款安卓应用&#xff0c;需要与使用经典蓝牙协议的设备进行串口通讯&#xff0c;而uniapp官方给出的蓝牙操作接口目前只支持BLE&#xff08;低功耗蓝牙&#xff09;&#xff0c;用该接口无法正常获取到我想要连接的设备。 通过大量搜索&#xff0c…...