【笔试训练】day21

1.爱丽丝的人偶

题目意思就是构造一个序列,序列的每个元素要么比左右两个高,要么比左右两个低。

可以看成是一条上下波动的曲线。

我们可以模拟波动的这个过程。

假设有一个数组,里面元素是1-n.遍历每一个位置。用一个指针pos来表示当前检查的位置,从2开始。

从2开始,看左右两边是不是都大于他或者都小于他,如果不是,说明要调整位置。

怎么调整呢?直接跟后面这个数交换就好了。

后面这个数一定比2大,所以交换之后2原来的位置的那个数一定符合要求。因为他比左右两边的数都大了。然后pos后移动。

假设n为7,具体交换过程如下:

代码:

#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;int main() {int n;cin>>n;vector<int> v(n+1);for(int i=1;i<=n;i++)v[i]=i;int pos=2;while(pos<n){if(v[pos]>v[pos-1]&&v[pos+1]>v[pos]){swap(v[pos],v[pos+1]);}pos++;}for(int i=1;i<=n;i++)cout<<v[i]<<" ";cout<<endl;return 0;  
}

2.集合

考察set的使用

代码:

#include <iostream>
#include<vector>
#include<set>
#include<queue>
using namespace std;int main() {set<int> s;int n,m;cin>>n>>m;for(int i=0;i<n+m;i++){int x;cin>>x;s.insert(x);}for(auto& it:s){cout<<it<<" ";}return 0;
}
// 64 位输出请用 printf("%lld")

3.最长回文子序列

递归或者动态规划。递归的话,用一个函数表示fun(l,r)最长的回文子序列是多少。自底向上递归。如果str[l]==str[r],说明fun(l,r)=fun(l+1,r-1)+2。因为,相同的两个字符是一定可以添加到子序列回文串的首尾两端的。如果不相等,那就往长度减一的子序列里面去找,即fun(l+1,r),或者·fun(l,r-1)。

由于题目已经交上去了,就没写递归版本的代码了。

动态规划其实就是模拟这个思路的。

从长度为1开始,逐渐扩散。

dp[l][r]表示,[l,r]的范围内的回文字符串最长能到多少。不一定这个最长序列包含str[l]和str[r].

状态转移方程与递归方程一致.

代码:

#include <iostream>
#include<string>
#include<vector>
using namespace std;int main() {string str;cin>>str;int n=str.size();vector<vector<int>> f(n+1,vector<int>(n+1));int ans=1;for(int len=1;len<=n;len++){for(int l=0;l+len-1<n;l++){int r=l+len-1;if(len==1){f[l][r]=1;continue;}if(str[l]==str[r]){f[l][r]=f[l+1][r-1]+2;}else{f[l][r]=max(f[l+1][r],f[l][r-1]);}ans=max(ans,f[l][r]);}}cout<<ans<<endl;return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

智慧之巅:大数据与算力中心的融合演进

智慧之巅&#xff1a;大数据与算力中心的融合演进 1 引言 在这个数据驱动的时代&#xff0c;我们站在了一个前所未有的历史节点上。大数据和算力中心&#xff0c;这两个曾经各自为政的领域&#xff0c;如今正以一种前所未有的方式交织在一起&#xff0c;共同推动着数字经济的蓬…

阿里云CentOS 7.9 64位 Liunx 安装redis

具体的步骤如下&#xff1a; 添加 EPEL 仓库&#xff0c;因为 Redis 在标准的 CentOS 仓库中不可用&#xff1a; sudo yum install epel-release安装 Redis&#xff1a; sudo yum install redis启动 Redis 服务&#xff1a; sudo systemctl start redis如果你想让 Redis 在…

魔方阵(C语言)

一、魔方阵规律&#xff1b; 8 1 6 3 5 7 4 9 2 魔方阵中各数的排列规律如下&#xff1a; (1)将1放在第1行中间一列。 (2)从2开始直到nn止&#xff0c;各数依次按此规则存放&#xff1a;每一个数存放的行比前一个数的行数减1&#xff0c;列数加1(例如上…

【备战软考(嵌入式系统设计师)】08 - 多媒体技术信息安全

多媒体技术 这内容比较杂&#xff0c;而且跟咱嵌入式的关系不大&#xff0c;但是软考里会考一些&#xff0c;下面我就结合我已经刷过的一千多道往年真题概括总结一下常考的知识点。 媒体分类 首先媒体分为五类&#xff1a; 感觉媒体&#xff0c;让人直接感觉得到的媒体&…

2024-05-07 商业分析-如何在社会层面做一个更好的工具人-记录

摘要: 2024-05-07 商业分析-如何成为一个靠谱的工具人 如何在社会层面做一个更好的工具人 那么今天讲的这个主题呢&#xff0c;对吧&#xff1f;你们一看啊&#xff0c;就觉得这个就不应该我讲是吧啊&#xff0c;但是呢这个逻辑呢我还得跟你们讲一下啊&#xff0c;就是如何成为…

docker jenkins 部署springboot项目

1、创建jenkins容器 1&#xff0c;首先&#xff0c;我们需要创建一个 Jenkins 数据卷&#xff0c;用于存储 Jenkins 的配置信息。可以通过以下命令创建一个数据卷&#xff1a; docker volume create jenkins_data启动 Jenkins 容器并挂载数据卷&#xff1a; docker run -dit…

了解你的构建:发布经理构建难点应对指南

在如今的计算机行业&#xff0c;发布经理的工作任重而道远。一方面他们必须紧跟日益攀升的行业标准&#xff0c;发布速度的极限不断突破&#xff0c;现在要求的速度在过去是远远无法想象的。另一方面&#xff0c;质量的门槛也在不断抬高。 我并非诟病软件更新换代过于迅速频繁…

QT截图程序,可多屏幕截图

截图程序&#xff0c;支持多屏幕时跨屏幕截图。截图使用setMask达到镂空效果&#xff0c;截图后会有预览和保存功能。截图时按下Esc可退出。 mainwindow.ui mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug> …

【mobx-入门与思考】

介绍 mobx 是 nodejs生态中的框架&#xff0c; 主要用于做状态管理&#xff0c;可以监控变量状态的变化。 nodejs中除了mobx&#xff0c;还有个redux&#xff0c;也是做状态管理的&#xff0c;都是比较成熟的框架&#xff0c;二者的选择可以参考 【nodejs状态管理: Redux VS M…

Springboot项目学习之各组件的用法和逻辑结构

1.Controller层&#xff08;Controller&#xff09;&#xff1a; 也称为前端控制器或请求处理器&#xff0c;它是项目与用户交互的入口。Controller接收HTTP请求&#xff0c;解析请求参数&#xff0c;调用Service层处理业务逻辑&#xff0c;并返回响应给客户端。 Controller通…

pyqt 滑动条控件QSlider

pyqt 滑动条控件QSlider 滑动条控件QSlider效果代码 滑动条控件QSlider QSlider 是 PyQt中的一个控件&#xff0c;它允许用户通过拖动滑块或点击滑块轨道上的任意位置来选择一系列值。 QSlider 有两种主要的类型&#xff1a;Qt.Horizontal&#xff08;水平滑块&#xff09;和 …

每日OJ题_贪心算法三⑤_力扣134. 加油站

目录 力扣134. 加油站 解析代码 力扣134. 加油站 134. 加油站 难度 中等 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一…

CUDA-共享内存法实现矩阵乘法(比常规方案提速一倍)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 共享内存是什么&#xff1f; 共享内存是在多个处理单元之间共享数据的一种内存区域。在计算机体系结构中&#xff0c;共享内存通…

学QT的第二天~

小黑子鉴别界面 #include "mywidget.h" void MyWidget::bth1() { if(edit3 ->text()"520cxk"&&edit4 ->text()"1314520") { qDebug()<< "你好&#xff0c;真爱粉"; this->close(); } else { speecher->sa…

linux或ubuntu环境下需要自行安装vivado USB Program下载程序驱动

如果在linux或ubuntu环境下&#xff0c;不安装驱动是无法下载FPGA程序的。在linux或ubuntu环境下安装程序不要自动安装。 johnjohn-wang:~/vitis2021.2/Vivado/2021.2/data/xicom/cable_drivers/lin64/install_script/install_drivers$ sudo ./install_drivers

java—异常

异常 什么是异常 异常的体系 编译时异常处理方式 1、选择报错的整个代码块&#xff0c;快捷键crtlaltt键&#xff0c;选择try/catch将代码围起来。 2、编译异常处理方式2 在main方法上抛出异常 自定义异常 例子&#xff1a; 自定义运行时异常 自定义编译时异常 异常…

【快速幂取模】

求 a 的 b 次方对 p 取模的值&#xff0c;其中 1≤a,b,p≤109 输入 三个用空格隔开的整数a,b和p。 输出 一个整数&#xff0c;表示ab mod p的值。 样例输入 Copy 2 3 9样例输出 Copy 8 思路&#xff1a; 这里借鉴一下大佬的用例&#xff1a; #include<bits/stdc.h&…

【每日刷题】Day33

【每日刷题】Day33 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09; 2. 445. 两数相加 II - 力扣&#xff08;…

腾讯突然宣布,微信鸿蒙版要来了!

今年初&#xff0c;华为宣布HarmonyOS NEXT命名为“鸿蒙星河版”&#xff0c;并计划在二季度启动开发者 Beta 计划&#xff0c;四季度发布商用正式版。 消息一出&#xff0c;不少人为之振奋。 鸿蒙星河版因不再兼容安卓开源应用&#xff0c;仅支持鸿蒙内核和系统的应用&#x…