标签:i++ ssi etc order hdu min set ase 3.1
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 5478 Accepted Submission(s): 1287
#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <vector> #include <iomanip> #include <cmath> #include <ctime> #include <map> #include <set> using namespace std; #define lowbit(x) (x&(-x)) #define max(x,y) (x>y?x:y) #define min(x,y) (x<y?x:y) #define MAX 100000000000000000 #define MOD 1000000007 #define pi acos(-1.0) #define ei exp(1) #define PI 3.141592653589793238462 #define INF 0x3f3f3f3f3f #define mem(a) (memset(a,0,sizeof(a))) typedef long long ll; int x,dp[100006],dps[100006],n,t; int a[100006]; int main() { scanf("%d",&t); while(t--) { scanf("%d",&n); int ans=1; int pos=1; for(int i=0;i<n;i++) scanf("%d",&a[i]); dp[1]=a[0]; for(int i=1;i<n;i++) { if(a[i]>=dp[ans]) dp[++ans]=a[i]; else { int l=upper_bound(dp+1,dp+ans,a[i])-dp;//重要 dp[l]=a[i]; } } dps[1]=a[n-1]; for(int i=n-2;i>=0;i--) { if(a[i]>=dps[pos]) dps[++pos]=a[i]; else { int l=upper_bound(dps+1,dps+pos,a[i])-dps; dps[l]=a[i]; } } if(ans>=(n-1) || pos>=(n-1)) printf("YES\n"); else printf("NO\n"); } return 0; }
标签:i++ ssi etc order hdu min set ase 3.1
原文地址:http://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/7228102.html