_no0B

Untitled

Nov 7th, 2021
1,070
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #define ll long long
  3. #define N ((int)6e4 + 5)
  4. #define MOD ((int)1e9 + 7)
  5. #define MAX ((int)1e9 + 7)
  6. #define MAXL ((ll)1e18 + 7)
  7. #define MAXP ((int)1e3 + 7)
  8. #define thr 1e-8
  9. #define pi acos(-1)  /// pi = acos ( -1 )
  10. #define fastio ios_base::sync_with_stdio(false),cin.tie(NULL)
  11. #define endl "\n"
  12.  
  13. using namespace std;
  14.  
  15.  
  16. /// LIS
  17. int arr[N] , dpp[N], lastEle[N];
  18.  
  19. int binarySearch(int arr[] , int val)
  20. {
  21.     int lef = 0 , rig = n;
  22.     while(lef < rig){
  23.         int mid = (lef + rig + 1) >> 1;
  24.         if(arr[mid] < val) lef = mid;
  25.         else rig = mid-1;
  26.     }
  27.     return lef;
  28. }
  29.  
  30. int main(){
  31.     int n;
  32.     cin>>n;
  33.     for(int i = 1; i <= n ; i++){
  34.         cin>>arr[i];
  35.         lastEle[i] = MAX;
  36.     }
  37.     lastEle[0] = -MAX;
  38.     for(int i = 1 ; i <= n ; i++){
  39.         int len = binarySearch(lastEle , arr[i] , n);
  40.         lastEle[len+1] = min(lastEle[len+1] , arr[i]);
  41.         dpp[i] = len+1;
  42.     }
  43. }
  44.  
Advertisement
Add Comment
Please, Sign In to add comment