#include #include #include #include #include #include #include #include #include #include using namespace std; #define ll long long const int maxn = 100010; int a[maxn]; //a[i] Ô-ê¼êy¾Y int d[maxn]; //d[i] 3¤¶èÎaiμÄμYÔö×óDòáDμÄ×îD¡Öμ int ans[maxn]; int BinSearch(int key, int* d, int low, int high) { while(low<=high) { int mid = (low+high)>>1; if(key>d[mid] && key<=d[mid+1]) return mid; else if(key>d[mid]) low = mid+1; else high = mid-1; } return 0; } int LIS(int* a, int n, int* d) { int i,j; d[1] = a[1]; int len = 1; //μYÔö×óDòáD3¤¶è ans[1] = 1; for(i = 2; i <= n; i++) { if(d[len]