2676 问题 E: 蓝桥杯2022年第十三届省赛真题-数组切分

时间限制: 1s 内存限制: 512MB 提交: 1411 解决: 373
题目描述

已知一个长度为 N 的数组:A1, A2, A3, ...AN 恰好是 1 ∼ N 的一个排列。现在要求你将 A 数组切分成若干个 (最少一个,最多 N 个) 连续的子数组,并且每个子数组中包含的整数恰好可以组成一段连续的自然数。

例如对于 A = {1, 3, 2, 4}, 一共有 5 种切分方法:

{1}{3}{2}{4}:每个单独的数显然是 (长度为 1 的) 一段连续的自然数

{1}{3, 2}{4}:{3, 2} 包含 2 到 3,是 一段连续的自然数,另外 {1} 和 {4} 显然也是。

{1}{3, 2, 4}:{3, 2, 4} 包含 2 到 4,是 一段连续的自然数,另外 {1} 显然也是。

{1, 3, 2}{4}:{1, 3, 2} 包含 1 到 3,是 一段连续的自然数,另外 {4} 显然也是。

{1, 3, 2, 4}:只有一个子数组,包含 1 到 4,是 一段连续的自然数

输入
第一行包含一个整数 N。第二行包含 N 个整数,代表 A 数组。
输出
输出一个整数表示答案。由于答案可能很大,所以输出其对 1000000007 取模后的值。
样例输入
4
1 3 2 4
样例输出
5
提示

对于 30% 评测用例,1 ≤ N ≤ 20. 

对于 100% 评测用例,1 ≤ N ≤ 10000. 

比赛公告

第十三届蓝桥杯大赛软件赛省赛 Java 大学 B 组
C题

字符统计

D题

最少刷题数

E题

求阶乘

F题

最大子矩阵

G题

数组切分

H题

回忆迷宫

I题

红绿灯

J题

拉箱子

注意事项:

1. 不要使用 package 语句。

2. 选手代码的主类名必须为:Main,否则会被判为无效代码。

3. 如果程序中引用了类库,在提交时必须将 import 语句与程序的其他部分同时提交。

4. 只允许使用 Java 自带的类库。

5. 提交时,注意选择使用Java语言。


本比赛结束依旧可以训练,见题集2022年第十三届蓝桥杯大赛软件类省赛Java大学B组真题