满满的负罪感,昨晚的刷题历程:写几道难题吧-->算了,还是只切道水题吧-->RNG赢了......
1 #include <bits/stdc++.h> 2 using namespace std; 3 #define rep(i,a,b) for(int i=a;i<=b;++i) 4 const int maxn=2010; 5 int f[maxn][maxn],a[maxn],n,T; 6 inline int gi() { 7 int x=0; char o; bool f=true; for(;!isdigit(o=getchar());)if(o=='-')f=false; 8 for(;isdigit(o);o=getchar()) x=(x<<1)+(x<<3)+(o&15); return f?x:~x+1; 9 } 10 int main() { 11 T=gi(); 12 while(T--) { 13 n=gi(); rep(i,1,n) a[i]=gi(); 14 memset(f,0x3f,sizeof(f)); f[0][0]=a[0]=-1; 15 rep(i,1,n) rep(k,1,i) { 16 if(a[i-1]<a[i]) f[i][k] = f[i-1][k-1]; 17 if(f[i-1][i-k]<a[i]&&a[i-1]<f[i][k]) f[i][k]=a[i-1]; 18 } 19 f[n][n>>1] < 1e9 ? puts("Yes!"):puts("No!"); 20 } 21 return 0; 22 }