5 条题解
-
0
/************** Note:咸鱼不贤于 **************/ #include <cmath> #include <cstring> #include <algorithm> #include <cstdio> #include <iostream> #include <queue> #include <stack> #include <string> using namespace std; #define LL long long const int N = 1e6 + 10; const int INF = 0x3f3f3f3f; int a[N]; int dp[N]; int main() { int n = 0 ; while(cin >> a[n]) { n++; } int len = 1; dp[0] = 0x3f3f3f3f; for(int i = 0 ; i < n ; i++) { if(dp[len-1] >= a[i]) dp[len++] = a[i]; else { int l = 0,r = len-1; while(l < r) { int mid = l + r >> 1; if(dp[mid] >= a[i]) l = mid + 1; else r = mid; } dp[l] = a[i]; } } cout << len -1 << endl; memset(dp,-1,sizeof(dp)); len = 1; for(int i = 0 ; i < n ; i++) { if(dp[len-1] < a[i]) dp[len++] = a[i]; else { int l = 0,r = len-1; while(l < r) { int mid = l + r >> 1; if(dp[mid] >= a[i]) r = mid; else l = mid + 1; } if(l != 0) dp[l] = a[i]; } } cout << len-1 << endl; return 0; }
信息
- ID
- 641
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 292
- 已通过
- 65
- 上传者