5.4代码

news2024/11/19 6:11:35

1.本质上升序列

我想到的是用回溯去找子集一个一个判断,当然这样的话会来的很慢,然后就在网上找到了大佬的方法,这东西居然是用动态规划来的,说是最长递增子序列的类似问题 ,感觉我好像写过类似的,但是去找了找居然没有,类似的是最长回文串,但是那玩意儿确实很不好理解

1.21动态规划(中等)-CSDN博客

最长回文串(回顾一下)

a和aa一定是,这样的话是a[i]==a[j]%%i-j<=1的情况,还有的话就是相差一定距离了,比如abcba,如果1-5是回文串,那么2-3一定是,不然就不满足回文串,所以在这样的条件下就可以写动态规划了

下面就分析这个题的解法,在别人的帖子里学习的·(蓝桥杯第十一届决赛)试题D:本质上升序列(动态规划)_蓝桥杯本质上升序列答案-CSDN博客

最长子序列问题

还有就是最长子序列的问题,给一串数字找到最长子序列,数据结构与算法之最长递增子序列-CSDN博客

流程大概就是遍历,找到比目前的数来的小,但是他的最长子序列又比目前的最长子序列来的要大,我们就更新,更新到要看的数据的前一个(比自己来的小但是有最长子序列的),更新完本身后再比较看看这个是不是最长的,如果是的话要更新总体最长的

#include <bits/stdc++.h>

using namespace std;

main()
{
	int a[9]={10,22,9,33,21,50,41,60,80};
	int n,i,j,cur,maxl=1;
	int* dp=(int*)calloc(n,sizeof(int));
	dp[0]=1;
	n=sizeof(a)/sizeof(a[0]);
	for(i=1;i<n;i++)
	{
		cur=0;
		for(j=0;j<i;j++)
		{
			if(a[i]>a[j])
			{
				if(dp[j]>cur)
				{
					cur=dp[j];
				}
			}
		}
		dp[i]=cur+1;
		if(dp[i]>maxl) maxl=dp[i];
	}
	cout<<maxl;
 } 
本题解法

回到本题,其实就是来看每一个字母的递增序列有多少,也就是说我们想做的不是找到最长子序列是有多长,而是从过程中入手,计算有几个递增子序列

在这个代码里遇到了几个常见的错误,首先就是memset函数,它只能初始化成0和-1,最开始想设置成1结果搞错了,第二就是i和j的顺序,要注意一下,这个题的解法很巧妙的地方在于如果是重复出现的,要剪掉重复的,其实就是剪掉它之前的递增子序列数,也就是f(j)

#include <bits/stdc++.h>

using namespace std;

main()
{
	string s;
	cin>>s;
	long long i,j,n,ans=0;
	n=s.size();
	cout<<n<<endl;
	long long dp[n];
	for(i=0;i<n;i++) dp[i]=1; 
	for(i=1;i<n;i++)
	{
		for(j=0;j<i;j++)
		{
			if(s[i]>s[j])
				dp[i]+=dp[j];
			else if(s[i]==s[j])
				dp[i]-=dp[j];
		}
	}
	for(i=0;i<n;i++)
	{
		cout<<dp[i]<<endl;
		ans+=dp[i];
	}
	cout<<ans;
 } 

2.排列距离

看着感觉很难,去查了一下发现这东西居然叫康托展开,原理是如果n个数字或者字符全排列,每个元素只出现一次,从小到大按字典排列好,从0开始给他们编号,从字符串映射到编号就是康托展开。

第十三届蓝桥杯 C/C++ 大学 A 组 排列距离 康托和逆康托展开_蓝桥杯排列距离-CSDN博客

由列全排可得到其次序编号(康托展开),由次序编号可以得到对应的第几个全排列(逆康托展开)。

【数论系列】 康托展开-CSDN博客

对于选择题来说就是可以直接手算了,给字母按顺序编号序号,之后计算一下然后减下来,但是要写代码的话就有点难了,应该是要一个visit数组,然后按照这个编号的顺序去遍历,本来想自己写,发现别人思路和我差不多,但是代码要来的漂亮很多,思路也很清晰

好奇该,感觉我得代码没啥问题,但是一直跑出来的结果奇奇怪怪的,和别人的也对不上,不过我输出了一下他的代码发现有复数,但是我写的和他的又一样,奇奇怪怪的

#include <bits/stdc++.h>

using namespace std;

long long f[18];

void fl(int n)
{
	f[0] = f[1] = 1; // 0的阶乘为1
    for(int i = 2; i <= n; i++) f[i] = f[i - 1] * i;
}

long long kt(string s)
{
	int i,j,tmp,n;
	long long ans=1;
	n=s.size();
	for(i=0;i<n;i++)
	{
		tmp=0;
		for(j=i+1;j<n;j++)
		{
			if(s[i]>s[j]) tmp++;
		}
		ans+=tmp*f[n-i-1];
	}
	return ans;
}

main()
{
	fl(18);
	string s1="aejcldbhpiogfqnkr",s2="ncfjboqiealhkrpgd";
	long long sum1,sum2,sum3,sum4;
	sum1=kt(s1);
	sum2=kt(s2);
	cout<<sum1<<" "<<sum2<<endl;
	sum3=sum2-sum1;
	sum4=f[17]-sum3;
	cout<<min(sum3,sum4); 
	

	
 } 

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

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

相关文章

gitee关联picgo设置自己的typora_图床

一&#xff1a;去gitee官网创建仓库&#xff1a;typora_图床 1.百度搜索关键字&#xff1a;gitee&#xff0c;进入官网 2.进入gitee登录或者注册自己的账号 3.进入主页后&#xff0c;点击右上方 4.点击新建仓库 5.设置仓库名&#xff1a;typora_图床 6.点击5的创建&#xff0…

基于Springboot的校运会管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的校运会管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&a…

让我们一起来领悟带环问题的核心思想

一、带环的链表&#xff1a; 本质还是快慢指针来解决 关于如下一个带环链表怎么去找到他们想碰到的节点呢&#xff1f;&#xff1f;&#xff1f;&#xff1f;我们可以想到快慢指针&#xff0c;第一个快点走&#xff0c;若是有环就会进入环&#xff0c;此时快指针每次走2步&am…

边缘计算含义与应用简析

边缘计算概述 边缘计算使数据存储和处理靠近生成或收集数据的位置&#xff0c;而不是在位于数千公里的服务器上。它将通过保持灵活性在边缘无缝可靠地部署服务。它比云计算更安全&#xff0c;因为不需要传输数据。因此&#xff0c;在将数据从边缘移动到云端时&#xff0c;不用…

嵌入式开发六:新建工程—寄存器版

通过前面的学习&#xff0c;我们对 STM32 有了个比较清晰的了解&#xff0c;本次我们将讲解新建寄存器库版本 MDK 工程的详细步骤。后期我们基于固件库开发&#xff0c;借助Keil5的环境配置助手界面RTE&#xff0c;不需要进行文件移植&#xff0c;本节的寄存器版本&#xff0c;…

测试通过!X-Argus、X-Gorgon、X-Medusa和X-Helions

算法分析测试 Host:api5-normal-sinfonlinea.fqnovel.com Cookie:install_id2821771262445211; ttreq1$eb27d336c987581d9ed1b36c48cab2c7bcbc7305; d_ticket38b3fb964c1b4c5955565dc0f91cfcf64df74; odin_tte25761a2638b499c0bf8840c9857e43a17899df1213ba33153a266bbddf47b5…

CSS盒子模型 (盒子模型 下)

&#xff08;大家好&#xff0c;今天我们将继续来学习CSS的相关知识&#xff0c;大家可以在评论区进行互动答疑哦~加油&#xff01;&#x1f495;&#xff09; 目录 1.4 表格的细线边框 1.5 边框会影响盒子实际大小 1.6 内边距(padding) 案例&#xff1a;新浪微博选框栏…

口才训练:如何用声音和语言展现自我魅力

口才训练&#xff1a;如何用声音和语言展现自我魅力 这里有一篇1270字左右的文章&#xff0c;主要介绍如何用声音和语言来展现自我魅力&#xff1a; 口才训练是提升个人魅力的重要途径之一。魅力不仅取决于外表&#xff0c;更重要的是声音和语言的运用。良好的语言表达能力可以…

CMakeLists.txt语法规则:部分常用命令说明一

一. 简介 前一篇文章简单介绍了CMakeLists.txt 简单的语法。文章如下&#xff1a; CMakeLists.txt 简单的语法介绍-CSDN博客 接下来对 CMakeLists.txt语法规则进行具体的学习。本文具体学习 CMakeLists.txt语法规则中常用的命令。 二. CMakeLists.txt语法规则&#xff1a;…

小程序账号设置以及request请求的封装

一般开发在小程序时&#xff0c;都会有测试版和正式版&#xff0c;这样在开发时会比较方便。 在开发时。产品经理都会给到测试账号和正式账号&#xff0c;后端给的接口也都会有测试环境用到的接口和正式环境用到的接口。 这里讲一讲我这边如何去做的。 1.在更目录随便命名一…

Ubuntu20安装torch1.13和pytorch_geometric2.3.0(对应cuda11.6)

在torch下载页面搜索1.13https://pytorch.org/get-started/previous-versions/&#xff0c;wheel安装方式&#xff08;激活conda虚拟环境&#xff09; pip install torch1.13.0cu116 torchvision0.14.0cu116 torchaudio0.13.0 --extra-index-url https://download.pytorch.org…

“100先生”逢跌加仓

原创 | 刘教链 BTC&#xff08;比特币&#xff09;从前日创下的局部低点56.5k持续修复至59k上方&#xff0c;距离重回6万刀仅有半步之遥。 群里有群友还在等25k。还有朋友发来消息问&#xff0c;这次是不是有机会跌回15k&#xff1f; 躺下睡一觉。梦里会有的。 就在前两天ETF们…

时间复杂度空间复杂度 力扣:转轮数组,消失的数字

1. 算法效率 如何衡量一个算法的好坏&#xff1f;一般是从时间和空间的维度来讨论复杂度&#xff0c;但是现在由于计算机行业发展迅速&#xff0c;所以现在并不怎么在乎空间复杂度了下面例子中&#xff0c;斐波那契看上去很简洁&#xff0c;但是复杂度未必如此 long long Fib…

BAPI_PR_CHANGE how to add account assignment information for service line,如何解决?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

数据结构(十)----图

目录 一.图的概念 1.图的定义 2.图的类别 3.图的性质 4.几种特殊形态的图 二.图的存储结构 1.邻接矩阵&#xff08;顺序存储&#xff09; 2.邻接表&#xff08;顺序链式存储&#xff09; 3.十字链表 4.邻接多重表 四.图的遍历 1.广度优先遍历&#xff08;BFS&#…

Elasticsearch 数据聚合

Bucket聚合&#xff08;桶聚合&#xff09; 对文档做分组&#xff0c;aggs 按照文档字段值或日期进行分组&#xff0c;能参与分词的字段不能做聚合&#xff0c;如text类型的字段 例如&#xff1a;根据城市名称做聚合&#xff0c;也就是城市名称对数据进行分组统计。可以加qu…

Python数据分析案例43——Fama-French回归模型资产定价(三因子/五因子)

案例背景 最近看到要做三因子模型的同学还挺多的&#xff0c;就是所谓的Fama-French回归模型&#xff0c;也就是CAMP资本资产定价模型的升级版&#xff0c;然后后面还升级为了五因子模型。 看起来眼花缭乱&#xff0c;其实抛开金融资产定价的背景&#xff0c;从机器学习角度来…

2024年3月Scratch图形化编程等级考试(三级)真题试卷

2024年3月Scratch图形化编程等级考试&#xff08;三级&#xff09;真题试卷 选择题 第 1 题 Scratch运行程序后&#xff0c;角色一定不会说出的数字是&#xff1f;&#xff08; &#xff09; A.2 B.4 C.6 D.8 第 2 题 Scratch角色初始位置如下图所示&#xff0c;右图…

Spring Boot与OpenCV:融合机器学习的智能图像与视频处理平台

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

spring框架学习记录(2)

文章目录 注解开发bean相关注解开发定义bean纯注解开发纯注解开发中bean的管理 依赖注入相关依赖注入第三方bean管理第三方bean依赖注入 AOP(Aspect Oriented Programming)面向切面编程AOP简介AOP核心概念AOP工作流程AOP切入点表达式通知类型AOP通知获取数据 注解开发 bean相关…