'commit'
This commit is contained in:
24
TangDou/AcWing/LIS/1010_Dilworth.cpp
Normal file
24
TangDou/AcWing/LIS/1010_Dilworth.cpp
Normal file
@@ -0,0 +1,24 @@
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
const int N = 1e5 + 10;
|
||||
int n, a[N];
|
||||
int f[N], fl;
|
||||
int g[N], gl;
|
||||
|
||||
int main() {
|
||||
while (cin >> a[n]) n++;
|
||||
|
||||
for (int i = 0; i < n; i++) {
|
||||
f[i] = 1, g[i] = 1;
|
||||
for (int j = 0; j < i; j++) {
|
||||
if (a[i] <= a[j])
|
||||
f[i] = max(f[i], f[j] + 1); // 最长的不上升子序列长度
|
||||
else
|
||||
g[i] = max(g[i], g[j] + 1); // 最长单调上升子序列的长度,等于,不上升子序列的覆盖数
|
||||
}
|
||||
fl = max(fl, f[i]), gl = max(gl, g[i]);
|
||||
}
|
||||
printf("%d\n%d\n", fl, gl);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user