【笔试强训】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.hqwc.cn/news/640022.html

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

相关文章

海外媒体如何发布软文通稿

大舍传媒-带您了解海外发布新潮流 随着全球化的不断深入&#xff0c;越来越多的中国企业开始关注海外市场。为了在国际舞台上树立品牌形象&#xff0c;企业纷纷寻求与海外媒体合作&#xff0c;通过发布软文通稿的方式&#xff0c;传递正面信息&#xff0c;提升品牌知名度。作为…

基于springboot实现的摄影跟拍预定管理系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven…

实验2 NFS部署和配置

一、实训目的 1.了解NFS基本概念 2.实现NFS的配置和部署 二、实训准备 1.准备一台能够安装OpenStack的实验用计算机&#xff0c;建议使用VMware虚拟机。 2.该计算机应安装CentOS 7&#xff0c;建议采用CentOS 7.8版本。 3.准备两台虚拟机机&#xff08;客户机和服务器机&…

Attention和Transformer灵魂七问

1. 引言 最近&#xff0c;ChatGPT和其他聊天机器人将大语言模型LLMs推到了风口浪尖。这就导致了很多不是学ML和NLP领域的人关注并学习attention和Transformer模型。在本文中&#xff0c;我们将针对Transformer模型结构提出几个问题&#xff0c;并深入探讨其背后的技术理论。这…

每日算法之矩阵置零

题目描述 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]] 示例 2&#xff1a; 输入&#x…

Linux的网络传输

端口 端口&#xff0c;是设备与外界通讯交流的出入口。端口可以分为&#xff1a;物理端口和虚拟端口两类 物理端口&#xff1a;又可称之为接口&#xff0c;是可见的端口&#xff0c;如USB接口&#xff0c;RJ45网口&#xff0c;HDMI端口等虚拟端口&#xff1a;是指计算机内部的…

net模块

建立TCP的链接 1 发送消息的服务 2 接收消息 2 建立http的链接让浏览器进行访问 import net from netconst html <h1>TCP</h1>const respinseHeaders [HTTP/1.1 200 OK,Content-Type:text/html,Content-Length: html.length,\r\n,html]const http net.create…

20240331-1-基于深度学习的模型

基于深度学习的模型 知识体系 主要包括深度学习相关的特征抽取模型&#xff0c;包括卷积网络、循环网络、注意力机制、预训练模型等。 CNN TextCNN 是 CNN 的 NLP 版本&#xff0c;来自 Kim 的 [1408.5882] Convolutional Neural Networks for Sentence Classification 结…

核桃派全志H616实现VNC远程桌面教程

VNC远程桌面 核桃派预装了VNC服务器&#xff0c;VNC适应于局域网&#xff08;通常指同一个路由器网络下&#xff09;桌面登录。使用该服务前先确保核桃派已经通过以太网或无线WiFi连接到路由器。 使用核桃派桌面系统的时候由于要配置各类信息和联网&#xff0c;可以使用HDMI显…

实现Spring底层机制(阶段1—编写自己的Spring容器,扫描包,得到bean的Class对象)

环境搭建抛出问题 1.环境搭建 1.创建maven项目 2.导入依赖 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.ap…

leetcode每日一题第五十六天

今天心情不好&#xff0c;就做一道 class Solution { public:int countTarget(vector<int>& scores, int target) {return help(scores,target)-help(scores,target-1);}int help(vector<int>&scores,int target){int left 0;int right scores.size()-1;…

13-LINUX--消息队列

一.消息队列 1.消息队列&#xff1a;消息队列为一个进程向另一个进程发送一个数据块提供了条件&#xff0c;每个数据块会包含一个类型。 2.相关函数 1>.msgget(key_t key,int msgflg) : 创建消息队列 2>. msgsnd&#xff1a;把消息添加到消息队列 3>.msgrcv &#xf…