切換
舊版
前往
大廳
主題

ZeroJudge - e588: 12385 - Interesting Sequences 解題心得

Not In My Back Yard | 2020-01-04 23:48:40 | 巴幣 0 | 人氣 192

題目連結:


題目大意:
給定一正整數 T (T ≦ 100),代表有 T 筆測試資料,每筆佔兩列。測資的第一列給定一正整數 N (1 ≦ N ≦ 100000),代表有一數列長度為 N ;第二列有 N 個正整數(皆介於 1 ~ 100000 之間),代表數列的 N 個元素。

如果一該數列的子序列 Xi 、 Xi+1 、 …… 、 Xj ,且 Xi = Xj,則此子序列稱作「有趣的」。

如果兩個有趣的子序列 Xi 、 Xi+1 、 …… 、 Xj 和  Xa 、 Xa+1 、 …… 、 Xb 其中 j ≦ a 或是 b ≦ i ,則此兩個子序列彼此稱作「無衝突」。

求給定的序列,求出盡可能多的「有趣的」子序列,且彼此之間「無衝突」。請輸出最多可以有幾個符合要求的子序列。



範例輸入:
3
6
1 2 1 3 1 2
4
2 4 2 4
9
10 2 2 10 3 4 5 4 3


範例輸出:
2
1
2


解題思維:
每找到一個有趣的子序列(盡可能短越好,也就是找最相鄰的兩個相同數字。其二數以及夾在中間的數字就是一有趣子序列),判斷其左邊界是否 < 上一個的右邊界。如果是,代表重疊到上一個子序列,則不挑此序列;反之,可以挑該子序列,所求數量 + 1。

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作