标签:push run lse lap return sys ems turn color
C:
将序列排开。
a[1] a[x] a[x+1] a[n].
可以发现,若满足a[1] < a[n].
那么对于a[x] > a[1] 和 a[x+1] < a[n] ,将肯定会存在一种情况满足。
然后就可以不断缩减区间数。最后变成a[1] , a[n].
所以当a[1] < a[n]时,就可以实现,否则当从左向右延伸最小值时,无法实现。
Code:
#include<bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<int,int> pii; const int N = 3e5+5; const int M = 1e6+5; const int Mod = 317000011; #define pi acos(-1) #define INF 1e8 #define INM INT_MIN #define pb(a) push_back(a) #define mk(a,b) make_pair(a,b) #define dbg(x) cout << "now this num is " << x << endl; #define met0(axx) memset(axx,0,sizeof(axx)); #define metf(axx) memset(axx,-1,sizeof(axx)); #define sd(ax) scanf("%d",&ax) #define sld(ax) scanf("%lld",&ax) #define sldd(ax,bx) scanf("%lld %lld",&ax,&bx) #define sdd(ax,bx) scanf("%d %d",&ax,&bx) #define sddd(ax,bx,cx) scanf("%d %d %d",&ax,&bx,&cx) #define sfd(ax) scanf("%lf",&ax) #define sfdd(ax,bx) scanf("%lf %lf",&ax,&bx) #define pr(a) printf("%d\n",a) #define plr(a) printf("%lld\n",a) int a[N]; void run() { int t;sd(t); while(t--) { int n;sd(n); for(int i = 1;i <= n;++i) sd(a[i]); if(a[1] < a[n] || n == 1) printf("YES\n"); else printf("NO\n"); } } int main() { run(); //system("pause"); return 0; }
标签:push run lse lap return sys ems turn color
原文地址:https://www.cnblogs.com/zwjzwj/p/13290062.html