当前位置: 首页 > news >正文

区间价值 --- 题解--动态规划

目录

区间价值

题目描述

输入描述:

输出描述:

输入

输出

备注:

思路:

代码:


 

区间价值

J-区间价值_牛客竞赛动态规划专题班习题课 (nowcoder.com)
 

时间限制:C/C++ 2秒,其他语言4秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

对于一个数组a,定义其价值是其中不同的数的个数,比如对于数组[3,2,2,3,1],价值就是3。对于一个给定的长度len,求出所有长度为lenlenlen的子区间的价值之和是对于吉吉国王来说很重要,现在吉吉国王会告诉你他想知道的长度lenlenlen,你需要告诉吉吉国王答案。

比如数组[3,2,2,3,1],长度为2的子区间有[3,2],[2,2],[2,3],[3,1],那么价值分别是2,1,2,2,因此这个数组长度为2的价值和就是7。

输入描述:

第一行一个n表示数组的长度。

第二行n个数,第iii个数表示ai。

第三行一个q表示询问的次数。

接下来q行,每行一个整数表示查询的长度。

输出描述:

输出q行,第i行表示第i个询问的答案。

示例1

输入

5
3 2 4 3 1
4
1
2
3
4

输出

5
8
9
7

备注:

1≤n≤1e6 

思路:

这道题容易想到的是暴力解法(区间dp)但这肯定是会爆时间的。

现在设dp[i] 表示区间为i时的价值和。

那怎么从dp[i-1] 转移到 dp[i]

假如 当前区间为3, 数组为 32441

324 -> 3244 贡献不变

244 -> 2441 贡献加1

441 -> null 贡献-2

这里可以看出从dp[i-1] 到 dp[i] 会损伤掉后面 i-1个数的贡献值,并且前几个区间有s[i]的贡献增加。

前几个区间中那些区间是会提供贡献,或者说那些数在区间变大时可以提供贡献,这是可以预处理出来的,因为可以观察发现只有两个相同数的相隔距离大于等于i时,他们才会在长度为i的区间中提供一个贡献。(这里需要用一个后缀和统计)

代码:

import java.util.Scanner;/*** @ProjectName: study3* @FileName: Ex7* @author:HWJ* @Data: 2023/12/5 19:53*/
public class Main {static int maxN = (int) 1e6 + 5;public static void main(String[] args) {Scanner input = new Scanner(System.in);int n = input.nextInt();int[] arr = new int[maxN];int[] last = new int[maxN];long[] s = new long[maxN];int[] diff = new int[maxN];int[] cnt = new int[maxN];for (int i = 1; i <= n; i++) {arr[i] = input.nextInt();s[i - last[arr[i]]]++;last[arr[i]] = i;}for(int i = n; i > 0; i--){s[i] = s[i] + s[i + 1];}int tot = 0;for(int i = n; i > 0; i--){if (++cnt[arr[i]] == 1) tot++;diff[n - i + 1] = tot;}long[] ans = new long[n + 1];ans[1] = n;for(int i = 2; i <= n; i++){ans[i] = ans[i - 1] + s[i] - diff[i - 1];}int q = input.nextInt();for (int i = 0; i < q; i++) {int a = input.nextInt();System.out.println(ans[a]);}}
}

相关文章:

区间价值 --- 题解--动态规划

目录 区间价值 题目描述 输入描述: 输出描述: 输入 输出 备注: 思路&#xff1a; 代码&#xff1a; 区间价值 J-区间价值_牛客竞赛动态规划专题班习题课 (nowcoder.com) 时间限制&#xff1a;C/C 2秒&#xff0c;其他语言4秒 空间限制&#xff1a;C/C 262144K&…...

计算机毕业设计 基于大数据的心脏病患者数据分析管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…...

20:kotlin 类和对象 --泛型(Generics)

类可以有类型参数 class Box<T>(t: T) {var value t }要创建类实例&#xff0c;需提供类型参数 val box: Box<Int> Box<Int>(1)如果类型可以被推断出来&#xff0c;可以省略 val box Box(1)通配符 在JAVA泛型中有通配符?、? extends E、? super E&…...

我对迁移学习的一点理解(系列2)

文章目录 我对迁移学习的一点理解 我对迁移学习的一点理解 源域和目标域是相对的概念&#xff0c;指的是在迁移学习任务中涉及到的两个不同的数据集或领域。 源域&#xff08;Source Domain&#xff09;通常指的是已经进行过训练和学习的数据集&#xff0c;它被用来提取特征、…...

Spring MVC学习随笔-控制器(Controller)开发详解:控制器跳转与作用域(二)视图模板、静态资源访问

学习视频&#xff1a;孙哥说SpringMVC&#xff1a;结合Thymeleaf&#xff0c;重塑你的MVC世界&#xff01;&#xff5c;前所未有的Web开发探索之旅 衔接上文Spring MVC学习随笔-控制器(Controller)开发详解&#xff1a;控制器跳转与作用域&#xff08;一&#xff09; SpingMVC中…...

原型模式(Prototype Pattern)

1 基本概念 1.1 大佬文章 设计模式是什么鬼&#xff08;原型&#xff09; 详解设计模式&#xff1a;原型模式-腾讯云开发者社区-腾讯云 1.2 知识汇总 &#xff08;1&#xff09;原型模式&#xff1a;先 new 一个实例&#xff0c;该实例符合需求&#xff0c;之后再根据这个实…...

IM通信技术快速入门:短轮询、长轮询、SSE、WebSocket

文章目录 1. 引言2. 短轮询&#xff08;Short Polling&#xff09;2.1 原理2.2 代码示例2.2.1 服务器端&#xff08;Node.js&#xff09;2.2.2 客户端&#xff08;HTML JavaScript&#xff09; 3. 长轮询&#xff08;Long Polling&#xff09;3.1 原理3.2 代码示例3.2.1 服务器…...

04_W5500_TCP_Server

上一节我们完成了TCP_Client实验&#xff0c;这节使用W5500作为服务端与TCP客户端进行通信。 目录 1.W5500服务端要做的&#xff1a; 2.代码分析&#xff1a; 3.测试&#xff1a; 1.W5500服务端要做的&#xff1a; 服务端只需要打开socket&#xff0c;然后监听端口即可。 2…...

入门Redis学习总结

记录之前刚学习Redis 的笔记&#xff0c; 主要包括Redis的基本数据结构、Redis 发布订阅机制、Redis 事务、Redis 服务器相关及采用Spring Boot 集成Redis 实现增删改查基本功能 一&#xff1a;常用命令及数据结构 1.Redis 键(key) # 设置key和value 127.0.0.1:6379> set …...

SpringSecurity6 | 自定义登录页面

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Java从入门到精通 ✨特色专栏&#xf…...

从单向链表中删除指定值的节点

输入一个单向链表和一个节点的值&#xff0c;从单向链表中删除等于该值的节点&#xff0c;删除后如果链表中无节点则返回空指针。 链表的值不能重复。构造过程&#xff0c;例如输入一行数据为:6 2 1 2 3 2 5 1 4 5 7 2 2则第一个参数6表示输入总共6个节点&#xff0c;第二个参数…...

Vue2与Vue3的语法对比

Vue2与Vue3的语法对比 Vue.js是一款流行的JavaScript框架&#xff0c;通过它可以更加轻松地构建Web用户界面。随着Vue.js的不断发展&#xff0c;Vue2的语法已经在很多应用中得到了广泛应用。而Vue3于2020年正式发布&#xff0c;带来了许多新的特性和改进&#xff0c;同时也带来…...

实时动作识别学习笔记

目录 yowo v2 yowof 判断是在干什么,不能获取细节信息 yowo v2 https://github.com/yjh0410/YOWOv2/blob/master/README_CN.md ModelClipmAPFPSweightYOWOv2-Nano1612.640ckptYOWOv2-Tiny...

5G常用简称

名称缩写全称非周期 信道状态信息参考信号aperidoc CSIAperidoc Channel State Information缓冲区状态报告BSRBuffer Status Report小区特定无线网络标识CS-RNTICell-Specific Radio Network Temporary Identifier主小区组MCGMaster Cell groupMCG的节点MNMasternode主小区PCel…...

自动化测试框架性能测试报告模板

一、项目概述 1.1 编写目的 本次测试报告&#xff0c;为自动化测试框架性能测试总结报告。目的在于总结我们课程所压测的目标系统的性能点、优化历史和可优化方向。 1.2 项目背景 我们公开课的性能测试目标系统。主要是用于我们课程自动化测试框架功能的实现&#xff0c;以及…...

【SpringBoot】解析Springboot事件机制,事件发布和监听

解析Springboot事件机制&#xff0c;事件发布和监听 一、Spring的事件是什么二、使用步骤2.1 依赖处理2.2 定义事件实体类2.3 定义事件监听类2.4 事件发布 三、异步调用3.1 启用异步调用3.2 监听器方法上添加 Async 注解 一、Spring的事件是什么 Spring的事件监听&#xff08;…...

华为ensp实验——基于全局地址池的DHCP组网实验

目录 前言实验目的实验内容实验结果 前言 该实验基于华为ensp&#xff0c;版本号是1.3.00.100 V100R003C00SPC100&#xff0c;只供学习和参考&#xff0c;不作任何商业用途。 具体的DHCP命令可以看系列文章链接&#xff0c;计算机网络实验&#xff08;华为eNSP模拟器&#xff…...

如何选择一款安全可靠的跨网安全数据交换系统?

随着网络和数据安全的重视程度增加&#xff0c;为了有效地保护内部的核心数据资产&#xff0c;普遍会采用内外网隔离的策略。像国内的政府机构、金融、能源电力、航空航天、医院等关乎国计民生的行业和领域均已进行了网络的隔离&#xff0c;将内部划分成不同的网段&#xff0c;…...

基于c++版本的数据结构改-python栈和队列思维总结

##栈部分-&#xff08;叠猫猫&#xff09; ##抽象数据类型栈的定义&#xff1a;是一种遵循先入后出的逻辑的线性数据结构。 换种方式去理解这种数据结构如果我们在一摞盘子中取到下面的盘子&#xff0c;我们首先要把最上面的盘子依次拿走&#xff0c;才可以继续拿下面的盘子&…...

算法通关村第七关—迭代实现二叉树的遍历(黄金)

迭代实现二叉树的遍历 迭代法实现前序遍历 前序遍历是中左右&#xff0c;如果还有左子树就一直向下找。完了之后再返回从最底层逐步向上向右找。不难写出如下代码&#xff1a;&#xff08;注意代码中&#xff0c;空节点不入栈&#xff09; public List<Integer>preorde…...

Taotoken在多模型API聚合中的稳定性与低延迟体验观测

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken在多模型API聚合中的稳定性与低延迟体验观测 在项目开发中&#xff0c;尤其是那些重度依赖大模型能力的应用&#xff0c;A…...

170家!具身智能公司名单

点击下方卡片&#xff0c;关注“CVer”公众号AI/CV重磅干货&#xff0c;第一时间送达具身智能&#xff1a;人工智能的下一个浪潮&#xff01;今年再次被写入《政府工作报告》中&#xff0c;已经成为国家未来重点培育产业。市场方面&#xff0c;具身智能近一年融资更是爆火&…...

10分钟搞定Android Studio中文界面:告别英文困扰,让开发效率翻倍提升

10分钟搞定Android Studio中文界面&#xff1a;告别英文困扰&#xff0c;让开发效率翻倍提升 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguag…...

CentOS停服后,我为什么选了Rocky Linux 8.9?手把手教你从下载到配置网卡(附避坑点)

CentOS停服后&#xff0c;我为什么选了Rocky Linux 8.9&#xff1f;手把手教你从下载到配置网卡&#xff08;附避坑点&#xff09;当CentOS宣布转向Stream滚动更新模式时&#xff0c;整个运维圈都在寻找稳定可靠的替代方案。作为一位经历过CentOS 5到7全周期的系统管理员&#…...

3分钟快速解锁WeMod高级功能:Wand-Enhancer完整使用指南

3分钟快速解锁WeMod高级功能&#xff1a;Wand-Enhancer完整使用指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 你是否曾经在使用WeMod时&#xff0…...

Cursor Free VIP:终极解决方案,5步实现Cursor Pro永久免费使用

Cursor Free VIP&#xff1a;终极解决方案&#xff0c;5步实现Cursor Pro永久免费使用 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: You…...

2026年5款AI声音克隆工具对比实测,短音频素材如何免训练生成口播声?

短视频团队卡在声音克隆这一步很多做矩阵账号的运营同学反馈&#xff1a;手头只有主播15秒的口播片段&#xff0c;想批量生成不同脚本的配音口播&#xff0c;但主流工具要么要求3分钟以上音频、要么克隆后口型错位、要么导出后还得手动配到视频里——整个链路断在‘声’上。更棘…...

如何快速掌握缠论技术分析:通达信ChanlunX自动化插件完整指南

如何快速掌握缠论技术分析&#xff1a;通达信ChanlunX自动化插件完整指南 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 还在为复杂的缠论理论而头疼吗&#xff1f;ChanlunX通达信缠论插件为您提供了一站…...

终极免费方案:如何5分钟搞定Axure RP全界面中文汉化

终极免费方案&#xff1a;如何5分钟搞定Axure RP全界面中文汉化 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的…...

答案不在知识库内,改改 RAG 提示词这样就够了吗?

今天抛出一个问题&#xff0c;如果你的 RAG 系统检索到了垃圾文档&#xff0c;它会不会编一个听起来像模像样的答案&#xff1f; 提示词中写了“不知道就别答”&#xff0c;能管住吗&#xff1f; 介绍下 CRAG 这种方案。 传统 RAG 有一个沉默的故障模式 先说个案例。 某企业…...