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

蓝桥杯——数组切分

数组切分

题目分析

这里要搞清楚一个点就是满足区间内数字是连续数字的区间有什么样的特点,既然数字连续重新排列后的数字为n,n+1,n+2,n+3,n+4,…n+len,则最大数字和最小数字之差恰好是区间长度减1,即n+len-n=len,同样因为下标也是连续数字,那么左端点和右端点的下标之差也是区间长度减1,所以最大数字和最小数字之差恰好是左端点和右端点的下标之差。

定义dp[i]表示以a[i]结尾的区间能够被划分的区间的个数,那么dp[i]可以从 d p [ j − 1 ] ( j < i ) dp[j-1](j<i) dp[j1](j<i)转移过来的条件是a[j]~a[i]这个区间是一个连续区间。

题目代码

import java.util.Scanner;
public class Main{
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int a[] = new int[n+1];int mod = 1000000007;for (int i = 1; i < a.length; i++) {a[i] = scanner.nextInt();}int dp[] = new int[n+1];dp[0] = 1;for (int i = 1; i < dp.length; i++) {int max = a[i];int min = a[i];for (int j = i; j > 0; j--) {max = Math.max(a[j], max);min = Math.min(a[j], min);if(max-min==i-j) {dp[i] = (dp[i] + dp[j-1])%mod;}}}System.out.println(dp[n]);
}
}
http://www.lryc.cn/news/317941.html

相关文章:

  • 【机器学习】进阶学习:详细解析Sklearn中的MinMaxScaler---原理、应用、源码与注意事项
  • 数据库是什么?数据库连接、管理与分析工具推荐
  • 【C#算法实现】可见的山峰对数量
  • Selenium 隐藏浏览器指纹特征的几种方式
  • k8s发布nacos-server,nodeport配置注意事项
  • 伪分布式Spark集群搭建
  • Android 监听卫星导航系统状态及卫星测量数据变化
  • 鸿蒙培训开发:就业市场的新热点~
  • 【C++】string的底层剖析以及模拟实现
  • Unity的PICO项目基础环境搭建笔记(调试与构建应用篇)
  • 电脑远程桌面选项变成灰色没办法勾选怎么办?
  • 2024.3.14
  • chatGPT的耳朵!OpenAI的开源语音识别AI:Whisper !
  • C语言冒泡排序
  • vue2 elementui 封装一个动态表单复杂组件
  • 基于智慧灯杆的智慧城市解决方案(2)
  • 「Paraverse平行云」亮相HKSTP OPENHOUSE活动
  • CubeMX使用教程(5)——定时器PWM输出
  • superset连接Apache Spark SQL(hive)过程中的各种报错解决
  • Pulsar IO实战
  • Linux/Ubuntu/Debian基本命令:文本操作
  • Self-supervised Contextual Keyword and Keyphrase Retrieval with Self-Labelling
  • 新 树莓派4B 温湿度监测 基于debian12的树莓派OS
  • 人工智能入门之旅:从基础知识到实战应用(一)
  • GNN/GCN自己学习
  • honle电源维修UV电源控制器维修EVG EPS60
  • 【学习心得】Python好库推荐——websocket-client
  • 3.1_8 两级页表
  • 【SysBench】sysbench-1.20 命令速查表
  • neo4j网页无法打开,启动一会儿后自动关闭,查看neo4j status显示Neo4j is not running.