51nod 1202 子串行個數

2021-07-10 19:16:37 字數 1010 閱讀 4894

子串行的定義:對於乙個序列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

#include #include #include #include #include #include #include #include #include #include #include using namespace std;

#define esp 1e-8

const double pi = acos(-1.0);

const int inf = 1000000005;

const long long mod = 1000000007;

//freopen("in.txt","r",stdin); //輸入重定向,輸入資料將從in.txt檔案中讀取

//freopen("out.txt","w",stdout); //輸出重定向,輸出資料將儲存在out.txt檔案中

int a[100005], vis[100005];

long long dp[100005];

int main()

else

vis[a[i]] = i;

} printf("%lld\n", dp[n]);

}}

51Nod1202子串行個數

子串行的定義 對於乙個序列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的不同子串行的數量。由於答案比...

51Nod1202 子串行個數

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

51nod 1202 子串行個數

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