上传图片做网站维护微信公众号网页授权登录wordpress

news/2025/9/24 17:23:51/文章来源:
上传图片做网站维护,微信公众号网页授权登录wordpress,百度排行榜风云榜,建设工程公司账务处理题目#xff1a;从一个由N个整数排列组成的整数序列中#xff0c;自左向右不连续的选出一组整数#xff0c;可以组成一个单调减小的子序列(如从{68 69 54 64 68 64 70 67 78 62 98 87}中我们可以选取出{69 68 64 62}这个子序列#xff1b;当然#xff0c;这里还有很多其他…题目从一个由N个整数排列组成的整数序列中自左向右不连续的选出一组整数可以组成一个单调减小的子序列(如从{68 69 54 64 68 64 70 67 78 62 98 87}中我们可以选取出{69 68 64 62}这个子序列当然这里还有很多其他符合条件的子序列)。给定整数序列的长度和整数序列中依次的值请你求出这个整数序列中“最长的单调减小的子序列的长度”以及“不同但长度都是最长得单调减小的子序列的数量”。输入第1行为一个整数N表示输入的整数序列的长度(1≤N≤50000)。输入第2行包括由空格分隔的N个整数(每个整数都在32位长整型范围内)。输出包括一行为两个数字分别为针对给定的整数序列求出的“最长的单调减小的子序列的长度”以及“值不同但长度都是最长得单调减小的子序列的数量”样例输入1268 69 54 64 68 64 70 67 78 62 98 87样例输出4 2对于这个题一共有两个小部分的问题要解决。前一个问题是最长不上升子序列属于LIS问题使用动态规划解决后一个问题属于去重问题。对于LIS问题声明dp[i] 以第i个元素为结尾的子序列的最长的长度。对第i个元素与前i-1个元素进行比较dp[i] 1; //当末尾只要一个元素时 长度为1如果 arr[i] arr[j]:如果dp[i] dp[j] 1此时dp[i]的值会被更新为dp[j] 1其他情况不做处理对于去重问题“值不同但长度都是最长得单调减小的子序列的数量” 这里说的是比如输入62 1 2 1 2 1输出应为 2 12 1 2 1 这两个是值相同的所以应该当做一个使用size[i] 数组去记录第i元素为结尾时值不同但长度都是最长得单调减小的子序列的数量每次在dp更新一遍以后进行size的更新。去掉相同值的情况如果只去关注最后结尾时因为每次遍历都会更新状态也就是说如果有相同值的时候 后者会把前者的情况 都会过一遍所以只要每次更新时保证只取相同值的最后一个出现的元素位置的size[j]即可也就是最右边的那个。对于i元素所构成的最长子序列的前一个元素可能有很多不同值所以要记录这些值,并只取最右边的。最后size 和 dp都已经生成了最终数组然后对整个数组进行遍历 找出最大序列 且值不同的序列的数量方法同找单个i位置元素的值不同但长度都是最长得单调减小的子序列的数量 一致其他说明数据较大 使用java中的BigInteger遍历找值不同但长度都是最长得单调减小的子序列的数量时 使用倒序查找代码Scanner read new Scanner(System.in);int n read.nextInt();long[] arr new long[n];long[] dp new long[n];BigInteger[] size new BigInteger[n];for(int i 0; i n; i){arr[i] read.nextLong();}long max 0;for(int i 0; i n; i){dp[i] 1;size[i] new BigInteger(0);for(int j 0; j i; j){if(arr[j] arr[i]){if(dp[j] 1 dp[i]){dp[i] dp[j] 1;}}}if(dp[i] max){//更新 最长长度max dp[i];}// 确定以arr[i]结尾的 子序列中 值不同但长度都是最长得单调减小的子序列的数量if(dp[i] 1){//如果 不是只有一个数字的时候Set sl new HashSet();for(int j i - 1; j 0; --j){//从右向左查询 只查询第一次遇到的并且是最大长度的 size[i]// 没有记录路径 通过 arr[j] arr[i] dp[j] dp[i] - 1 来确定是否是前一个转移// 遇到相同结尾的情况更右边的已经包含了左边的情况if(arr[j] arr[i] dp[j] dp[i] - 1 !sl.contains(arr[j])){sl.add(arr[j]);//去重size[i] size[i].add(size[j]);}}}else{//只有一个数字是 数量为1size[i] new BigInteger(1);}}BigInteger maxBigI new BigInteger(0);Set set new HashSet();//遍历整个序列 找出最大长度 且值不同的序列的数量for(int i n - 1; i 0; --i){if(dp[i] max !set.contains(arr[i])){set.add(arr[i]);maxBigI maxBigI.add(size[i]);}}System.out.println(max maxBigI.toString());}

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

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

相关文章

实用指南:玳瑁的嵌入式日记---0923(ARM)

实用指南:玳瑁的嵌入式日记---0923(ARM)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

个人博客搭建记录【hexo】

安装hexo 部署环境Node.js GitNode.js 部署,建议版本大于 12.0Node.js 安装中步骤中需要注意其中两处:Add to PATH 选上,使其集成到系统环境中: ​此处勾选会安装各种编程环境和软件,这对于安装hexo是不必要的: …

喵喵喵

笨蛋循环。笨蛋黑白染色。笨蛋欧拉回路。笨蛋欧拉回路!!笨蛋性质。笨蛋反图。笨蛋典题。笨蛋困难难题目。笨蛋猫猫。笨蛋煎蛋。笨蛋,眼睛瞎了。

Ansible自动化管理 - 指南

Ansible自动化管理 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &…

flink不同环境切换 - --

代码: package com.yourcompany.flink; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;import java.util.Properties; /** * 最简版 - 所有代码在一个文件中 */public class Minima…

网站原则广州网站开发公司

RabbitMQ:高效的消息队列中间件及其 PHP 实现 一、什么是 RabbitMQ? RabbitMQ 是一个开源的消息队列中间件,使用 Erlang 编写,遵循 AMQP(Advanced Message Queuing Protocol)协议。它的主要功能是提供一种…

ps-填充色

ps-填充色一、填充颜色用矩形选框选中范围; Ctrl + delete:填充背景色; Alt + delete:填充前景色;不将就,不强求!

PythonStudio_圆的面积demo源代码

# Powered By Python Studio, The best Python GUI IDE to download from glsite.com. import os from glcl import *class Form1(Form):def __init__(self, owner):self.Button3 = Button(self)self.Button2 = Button…

HarmonyOS 5分布式数据同步实战:跨设备待办事项应用

🔧 一、前期准备:配置与权限 在开始编码前,需要进行一些基础配置。模块配置 (module.json5): 在 module.json5文件中申请分布式数据同步权限。 {"module": {"requestPermissions": [{"na…

深入理解HarmonyOS 5的AVSession:构建跨设备媒体播放器

🎯 一、AVSession 概述与核心价值 AVSession(媒体会话)是HarmonyOS分布式媒体控制的核心框架。它允许应用程序将本地播放的媒体信息和控制能力暴露给系统,使得其他设备(如手机、平板、智慧屏)可以发现、查看和控…

Extjs小例子

Extjs小例子 1.监听文本框是否已经修改过xtype : textfield,  fieldLable : 标题,  listeners : {     change : function(field,newValue,oldValue){ alert(newValue+---+oldValue);  …

郑州网站建设怎么样短视频推广方案怎么做

随着半导体技术的不断进步,晶圆制造作为集成电路产业的核心环节,对生产过程的精密性和洁净度要求日益提高。在众多晶圆制造工具中,PFA(全氟烷氧基)晶圆夹以其独特的材质和性能,在近年来逐渐受到业界的广泛关…

HT-AD4PS-1+ 一分四射频功分器:1-500 MHz 小尺寸/低插损,通信、医疗全能打

HT-AD4PS-1+ 一分四射频功分器:1-500 MHz 小尺寸/低插损,通信、医疗全能打成都恒利泰(HenryTech)HT-AD4PS-1+ 是一款全国产化的一分四表贴功分器/合路器,频率覆盖 1-500 MHz,插入损耗≤1.8 dB,体积小巧,可直接…

HarmonyOS资源管理与访问:多分辨率与多语言适配

本文将深入探讨HarmonyOS应用开发中的资源管理机制,重点介绍多分辨率适配和多语言本地化的完整解决方案。1. 资源管理系统架构 HarmonyOS提供了统一的资源管理框架,支持应用资源的分类、访问和适配。资源管理系统采用…

面试官:为什么没有虚拟线程池?

Java 官方文档明确指出:Do not pool virtual threads. 虚拟线程不是昂贵资源,永远不应该被池化。 应该为每个任务创建一个新的虚拟线程,它们应该是短暂的、任务级别的。这是为什么呢?为什么只有虚拟线程 Virtual T…

做外国网站自媒体网络工程师和做网站哪个难

————— 第二天 —————————————————下面我们一起来研究这三个问题。问题1:哪些是需要回收的?首先我们需要知道如何哪些垃圾需要回收?判断对象是否需要回收有两种算法。一种是引用计数算法、一种是可达性分析算法。引用计…

润生软件简介:以“重构与共生”引领商业未来

2014年,广东企业家陈总敏锐洞察到:当算力实现百倍跃升,数字信息将深刻重塑社会结构,传统行业与企业形态面临全面重构。基于此,他发起创立了润生公司(Reconstruction-Symbiosis Framework,简称RS),开启一场以“…

Python 并发编程

Python 并发编程是提升程序执行效率的核心技术,尤其在处理多任务场景(如网络请求、数据计算、文件 IO 等)时至关重要。 1、threading与线程池 多线程是 Python 中最常用的并发方式之一,通过创建多个线程实现任务并…

博物馆展陈设计公司搜索引擎优化什么意思

hi,我是逸尘,一起学java吧 目标(任务驱动) 1.请重点的掌握I/O的。 场景:最近你在企业也想搞一个短视频又想搞一个存储的云盘,你一听回想到自己对于这些存储的基础还不是很清楚,于是回家开始了…

做液压的公司网站成都营销型网站建设中账号

文章目录 1. 命令概述2. 命令格式3. 常用选项4. 相关描述4.1 tree 命令安装 5. 参考示例5.1 创建树形目录5.2 使用 tree 命令查看树形目录 1. 命令概述 tree 命令用于在命令行界面以树状图形式显示目录及其子目录的内容。这个命令递归地列出所有子目录,并可选择显示…