【笔试强训】day8

没啥好说,都是一遍过

1.求最小公倍数

思路:

求lcm。其实就是两数之乘积除以两个数的gcd。gcd就是是求两个数的最大公约数。

代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;int gcd(int a, int b) {return b == 0 ? a : gcd(b, a % b);
}int main() {int a, b;cin >> a >> b;cout << (long long)a * b / gcd(a, b) << endl;return 0;
}

2.数组中的最长连续子序列

思路:

题目描述有问题,求的答案跟子序列没半毛钱关系。转换一下题意就是,从一堆数里面选出n个数,这n个数排序后是一个严格+1的递增序列。既然和顺序无关,那就可以先sort.。sort完后用双指针维护一个严格+1的递增区间 。考虑到有重复数字的问题,在此之前去重就好了。

这题其实也可以用dp去做,dp[i]表示以i结尾的最长序列有多长,于是dp[i]=max (dp[i-1]+1 ,dp[i])

这里的dp可以用map维护。

代码:

#define _CRT_SECURE_NO_WARNINGS 1
class Solution {
public:int MLS(vector<int>& arr) {if (arr.size() == 1)return 1;sort(arr.begin(), arr.end());arr.erase(unique(arr.begin(), arr.end()), arr.end());int ans = 0;int i = 1, j = 0;int n = arr.size();for (; i < n; i++) {if (arr[i] - arr[i - 1] != 1) {ans = max(ans, i - j);j = i;}}if (arr[n - 1] - arr[n - 2] == 1) {ans = max(ans, i - j);}return ans;}
};

3.字母收集

思路:

跟杨辉三角没区别。

一般这种dp都是反过来思考的。对于一个(i,j)来说,到达这个点最多有多少分?怎么到达这个点?也就是这个点的上一个状态有哪几种? 只能是dp[i-1][j](表示上面)和dp[i][j-1](左边)来的。所以dp[i][j]就等于这两个状态的最大值。于是轻而易举得到状态转移方程:dp[i][j]=max(dp[i-1][j],dp[i][j-1])+val(arr[i]][j])。注意val表示(i,j)这个点的分数。

简单来说一下对于这种路径dp的思路吧:

假设某种路径问题是,从那里到那里的最大分数啊这种问题。

优先考虑对于当前状态,上一个状态有哪些?

就比如上一道题用dp怎么去想呢?从前往后,到达i这个点的状态有哪些?只能是i-1,所以dp[i]=dp[i-1]+1.

线性dp,区间dp,树上dp基本上都是这么想的。当然具体题目具体的来。

代码:

#include <iostream>
using namespace std;
const int N=510;
char g[N][N];
int f[N][N];int main() {int n,m;cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>g[i][j];}} for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){int k=0;if(g[i][j]=='l')k=4;else if(g[i][j]=='o')k=3;else if(g[i][j]=='v')k=2;else if(g[i][j]=='e')k=1;f[i][j]=max(f[i-1][j]+k,f[i][j-1]+k);}}cout<<f[n][m]<<endl;return 0;
}

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

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

相关文章

轮转数组(Leedcode)的题目

题目&#xff1a;给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步…

C++奇迹之旅:深入学习类和对象的初始化列表

文章目录 &#x1f4dd;再谈构造函数&#x1f320; 构造函数体赋值&#x1f309;初始化列表&#x1f309;初始化列表效率&#x1f320;隐式类型转换&#x1f309;复制初始化 &#x1f320;单多参数构造函数&#x1f309;explicit关键字 &#x1f6a9;总结 &#x1f4dd;再谈构造…

厉害了,Numpy

几乎所有使用Python处理分析数据的人都用过Pandas&#xff0c;因为实在太方便了&#xff0c;就像Excel一样&#xff0c;但你知道Pandas是基于numpy开发出来的吗? Pandas和Numpy的关系类似于国产安卓系统和原生安卓&#xff0c;Numpy提供底层数据结构和算法&#xff0c;搭配数…

C++心决之类和对象详解(中篇)(封装入门二阶)

目录 1.类的6个默认成员函数 2. 构造函数 2.1 概念 2.2 特性 3.析构函数 3.1 概念 3.2 特性 4. 拷贝构造函数 4.1 概念 4.2 特征 5.赋值运算符重载 5.1 运算符重载 5.2 赋值运算符重载 5.3 前置和后置重载 7.const成员 8.取地址及const取地址操作符重载 1.类的…

掌握item_get_app,提升电商推广转化率

一、引言 在数字化时代&#xff0c;电商行业蓬勃发展&#xff0c;竞争也日趋激烈。为了提高销售额和用户满意度&#xff0c;电商企业需要不断探索新的推广策略和技术手段。其中&#xff0c;掌握item_get_app技术&#xff0c;对于提升电商推广转化率具有重要意义。本文将深入探…

Tomcat设计思路

1. 核心功能 HTTP请求处理&#xff1a;设计一个能够接收HTTP请求并进行分发的核心模块。 Servlet生命周期管理&#xff1a;实现Servlet的生命周期管理&#xff0c;包括初始化、销毁等功能。 线程池支持&#xff1a;为每个HTTP请求分配一个独立的线程&#xff0c;以提高并发处…

软考139-上午题-【软件工程】-软件容错技术

一、软件容错技术 提高软件质量和可靠性的技术大致可分为两类&#xff0c;一类是避开错误&#xff0c;即在开发的过程中不让差错潜入软件的技术&#xff1b;另一类是容错技术&#xff0c;即对某些无法避开的差错&#xff0c;使其影响减至最小的技术。 1-1、容错软件的定义 归…

更换本地yum源的步骤

更换本地yum源的流程与命令&#xff1a;

学习记录——Mamba 草记

Mamba 学习记录 RNN 循环神经网络,每一个时刻的隐藏状态 h t ​ h_t​ ht​​都是基于当前的输入 x t x_t xt​和前一个时刻的隐藏状态 h t − 1 h_{t-1} ht

【Canvas与艺术】绘制圆形biozhazrad蒙版

【关键点】 制作一个半圆形不透明蒙版来造成左右两边相异的明暗效果。 【成果图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><tit…

Vue3、 Vue2 Diff算法比较

Vue2 Diff算法 源码位置:src/core/vdom/patch.ts 源码所在函数:updateChildren() 源码讲解: 有新旧两个节点数组:oldCh和newCh; 有下面几个变量: oldStartIdx 初始值=0 oldStartVnode 初始值=oldCh[0] oldEndIdx 初始值=oldCh.length - 1 oldEndVnode 初始值=oldCh[ol…

Arthas介绍及使用技巧

文章目录 简介能做什么&#xff1f; 使用下载并启动arthas选择应用 java 进程退出 arthas 常用查看命令帮助查看 dashboard通过 thread 命令来获取到线程的栈通过 jad 来反编译 Classwatch 查看方法出入参、sc 搜索类: 查看已加载类所在的包monitor 方法执行监控trace 方法内调…

fastgpt、dify功能分析比较

目录 前言 一、dify、fastgpt是什么&#xff1f; 二、同场pk 1.大模型接入 2.chat&#xff08;最简应用&#xff09; 3.发布应用 4.知识库 5.workflow 6.其他 三、一些point记录 总结 前言 现在都开始AI应用开发&#xff0c;何谓AI应用&#xff0c;起码要和AI大模型…

.Net使用Elastic.Clients.Elasticsearch在Elasticsearch8中实现向量存储和相似度检索

文章目录 一、测试环境二、代码1、创建包含DenseVector的索引2、索引文档3、对向量字段进行近似knn检索三、参考一、测试环境 Elastic.Clients.Elasticsearch版本:8.13.0 Elasticsearch版本:8.13.0 二、代码 1、创建包含DenseVector的索引 public static bool InitIndex(…

应对电网挑战!lonQ与橡树岭国家实验室利用量子技术改善关键基础设施

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨浪味仙 排版丨沛贤 深度好文&#xff1a;1800字丨6分钟阅读 摘要&#xff1a;美国电网正在面临需求增加和能源扩散的挑战&#xff0c;对能够应对优化和安全挑战的创新解决方案有着迫切需求…

解决方案:用决策树算法如何生成决策树图及生成SQL规则

文章目录 一、现象二、解决方案 一、现象 一开始没有做过生成决策树图及生成SQL规则&#xff0c;一时犯了难&#xff0c;百度很多找到了解决方法&#xff0c;于是乎&#xff0c;写一篇博客&#xff0c;这样下次就能直接拿来使用咯 二、解决方案 见最后三块代码&#xff0c;为…

Linux 安装 NVM + Node

Docker TIP&#xff1a;官方文档 拉取 Node 的 Docker 镜像&#xff0c;具体版本可以在上面的官方文档中选择&#xff1a; docker pull node:14-alpine验证环境中是否有正确的 Node.js 版本&#xff1a; docker run node:14-alpine node -v验证环境中是否有正确的 NPM 版本&a…

利用结构类型实现简单通讯录

复合数据类型之结构类型 在C语言中&#xff0c;结构类型是一种复合数据类型&#xff0c;它允许用户将不同类型的数据组合成一个单一的数据结构。结构类型为用户提供了自定义数据类型的机制&#xff0c;使得可以将多个相关的数据项组合成一个整体&#xff0c;常用来处理像记录、…

验证二叉搜索树(98)

解题思路&#xff1a;可以直接中序遍历放进一个数组里根据特性判断是否是递增就可以&#xff0c;如果采用递归的思路话用中序遍历和创建一个指针指向前一个节点&#xff0c;根据前一个节点是否比上一个节点小来判断是否是二叉树 具体代码如下&#xff1a; class Solution { …

Mac搭建appium环境及python运行代码示例

Appium主要是通过调用安卓提供的接口来执行命令的&#xff0c;所以需要安装Java和安卓SDK。 1.安装Appium服务端 appium的服务端是基于node的&#xff0c;直接使用npm(node包管理器)安装即可&#xff0c;比较简单。 npm install -g appium2.安装Python客户端 pip install A…