1759 最長上公升子串行

2021-08-04 04:20:49 字數 2971 閱讀 7045

/*

name: 1759_最長上公升子串行

author:

date: 22-07-17 16:02

description: 1759_最長上公升子串行

檢視 提交 統計 提問

總時間限制: 2000ms 記憶體限制: 65536kb

描述乙個數的序列bi,當b1 < b2 < ... < bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列(a1, a2, ..., an),

我們可以得到一些上公升的子串行(ai1, ai2, ..., aik),這裡1 <= i1 < i2 < ... < ik <= n。

比如,對於序列(1, 7, 3, 5, 9, 4, 8),有它的一些上公升子串行,如(1, 7), (3, 4, 8)等等。

這些子串行中最長的長度是4,比如子串行(1, 3, 5, 8).

你的任務,就是對於給定的序列,求出最長上公升子串行的長度。

輸入輸入的第一行是序列的長度n (1 <= n <= 1000)。第二行給出序列中的n個整數,這些整數的取值範圍都在0到10000。

輸出最長上公升子串行的長度。

樣例輸入

71 7 3 5 9 4 8

樣例輸出4*/

#include#includeusing namespace std;

const int max = 1010;

int a[max];

int s[max]; //記錄到元素i為止的最長上公升子串行的長度

int dp(int n);

int main()

cout << dp(n) << endl;

return 0;

}int dp(int n) //逆序查詢

} s[i] = len + 1;

if (s[i] > s[m])

}return s[m];

}

/*

name: 1759_最長上公升子串行

author:

date: 22-07-17 16:02

description: 1759_最長上公升子串行

檢視 提交 統計 提問

總時間限制: 2000ms 記憶體限制: 65536kb

描述乙個數的序列bi,當b1 < b2 < ... < bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列(a1, a2, ..., an),

我們可以得到一些上公升的子串行(ai1, ai2, ..., aik),這裡1 <= i1 < i2 < ... < ik <= n。

比如,對於序列(1, 7, 3, 5, 9, 4, 8),有它的一些上公升子串行,如(1, 7), (3, 4, 8)等等。

這些子串行中最長的長度是4,比如子串行(1, 3, 5, 8).

你的任務,就是對於給定的序列,求出最長上公升子串行的長度。

輸入輸入的第一行是序列的長度n (1 <= n <= 1000)。第二行給出序列中的n個整數,這些整數的取值範圍都在0到10000。

輸出最長上公升子串行的長度。

樣例輸入

71 7 3 5 9 4 8

樣例輸出4*/

#include#includeusing namespace std;

const int max = 1000;

int a[max];

int s[max]; //記錄到元素i為止的最長上公升子串行的長度

int dp(int n);

int main()

cout << dp(n) << endl;

return 0;

}int dp(int n) //順序查詢

}} }

return s[m];

}

/*

name: 1759_最長上公升子串行

author:

date: 22-07-17 16:02

description: 1759_最長上公升子串行

檢視 提交 統計 提問

總時間限制: 2000ms 記憶體限制: 65536kb

描述乙個數的序列bi,當b1 < b2 < ... < bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列(a1, a2, ..., an),

我們可以得到一些上公升的子串行(ai1, ai2, ..., aik),這裡1 <= i1 < i2 < ... < ik <= n。

比如,對於序列(1, 7, 3, 5, 9, 4, 8),有它的一些上公升子串行,如(1, 7), (3, 4, 8)等等。

這些子串行中最長的長度是4,比如子串行(1, 3, 5, 8).

你的任務,就是對於給定的序列,求出最長上公升子串行的長度。

輸入輸入的第一行是序列的長度n (1 <= n <= 1000)。第二行給出序列中的n個整數,這些整數的取值範圍都在0到10000。

輸出最長上公升子串行的長度。

樣例輸入

71 7 3 5 9 4 8

樣例輸出4*/

#include#includeusing namespace std;

const int max = 1000;

int a[max];

int s[max+1]; //記錄到元素i為止的最長上公升子串行的長度

int pos(int low, int high, int x);//二分法查詢插入位置

int dp(int n);

int main()

cout << dp(n) << endl;

return 0;

}int dp(int n) //順序查詢

else //二分查詢,並插入到適當位置

}return m;

}int pos(int low, int high, int x)

else

}return low;

}

1759 最長上公升子串行

1759 最長上公升子串行 檢視 提交 統計 提問 總時間限制 2000ms 記憶體限制 65536kb 描述 乙個數的序列bi,當b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1,a2,an 我們可以得到一些上公升的子串行 ai1,ai2,aik 這裡1 i1 i2 ik...

1759 最長上公升子串行

總時間限制 2000ms 記憶體限制 65536kb 描述 乙個數的序列 bi,當 b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1,a2 an 我們可以得到一些上公升的子串行 ai1,ai2 aik 這裡1 i1 i2 ik n。比如,對於序列 1,7,3,5,9,4,8...

1759 最長上公升子串行 動態規劃

描述 乙個數的序列bi,當b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1,a2,an 我們可以得到一些上公升的子串行 ai1,ai2,aik 這裡1 i1 i2 ik n。比如,對於序列 1,7,3,5,9,4,8 有它的一些上公升子串行,如 1,7 3,4,8 等等。這...