1202 子串行個數 DP

2022-04-11 02:02:14 字數 1334 閱讀 2398

1202 子串行個數

基準時間限制:1 秒 空間限制:131072 kb 分值: 40 難度:4級演算法題

子串行的定義:對於乙個序列a=a[1],a[2],......a[n]。則非空序列a'=a[p1],a[p2]......a[pm]為a的乙個子串行,其中1<=p1

例如4,14,2,3和14,1,2,3都為4,13,14,1,2,3的子串行。對於給出序列a,有些子串行可能是相同的,這裡只算做1個,請輸出a的不同子串行的數量。由於答案比較大,輸出mod 10^9 + 7的結果即可。

input

第1行:乙個數n,表示序列的長度(1 <= n <= 100000)

第2 - n + 1行:序列中的元素(1 <= a[i] <= 100000)

output

輸出a的不同子串行的數量mod 10^9 + 7。
input示例

412

32

output示例

13

//容易想到是 dp ,dp[i] 以 i 位置為結尾的子串行個數

1  # include 2 # include 3 # include 4 # include 5 # include 6 # include 7 # include 8 # include 9 # include 10 # include 11 # include 

12 # include 13 # include 14 # pragma comment(linker,"

/stack:102400000,102400000")

15using

namespace

std;

16#define mod 1000000007

17#define inf 0x3f3f3f3f

18#define ll long long

19#define mx 100005

2021

intn;

22int

dat[mx];

23int

zhi[mx];

24int

pre[mx];

25ll sum[mx];

26ll dp[mx];

2728

intmain()

2937

for (int i=1;i<=n;i++)

3845 printf("

%lld\n

",sum[n]);

46return0;

47 }

view code

1202 子串行個數 dp

子串行的定義 對於乙個序列a a 1 a 2 a n 則非空序列a a p1 a p2 a pm 為a的乙個子串行,其中1 p1例如4,14,2,3和14,1,2,3都為4,13,14,1,2,3的子串行。對於給出序列a,有些子串行可能是相同的,這裡只算做1個,請輸出a的不同子串行的數量。由於答案比...

1202 子串行個數

1202 子串行個數 子串行的定義 對於乙個序列a a 1 a 2 a n 則非空序列a a p1 a p2 a pm 為a的乙個子串行,其中1 p1例如4,14,2,3和14,1,2,3都為4,13,14,1,2,3的子串行。對於給出序列a,有些子串行可能是相同的,這裡只算做1個,請輸出a的不同子...

51nod 1202 子串行的個數 dp

1202 子串行個數 福州大學 oj 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 子串行的定義 對於乙個序列a a 1 a 2 a n 則非空序列a a p1 a p2 a pm 為a的乙個子串行,其中1 p1例如4,14,2,3和14,1,2,3都為4,13...