思路

非常容易发现.只有相邻的差值是1或者(n-1),而且n-1只能有一个的时候才成立,然后就,,

代码

#include<bits/stdc++.h> using namespace std ; int a[205] ; int main() { int q ; bool flag1 , flag2 ; cin >> q ; while(q--) { memset(a,0,sizeof(a)) ; int n , i = 1 ; cin >> n ; while(i <= n) { cin >> a[i] ; i ++ ; } i = 2 ; flag1=0; flag2=0; while(i<=n) { if (a[i]!=a[i-1]+1&&!(a[i]==1&&a[i-1]==n)) { flag1=1; break; } i++; } i=2; while(i<=n) { if (a[i]!=a[i-1]-1&&!(a[i]==n&&a[i-1]==1)) { flag2=1; break; } i++; } if (flag1&&flag2) { cout<<"NO"<<endl; } else { cout<<"YES"<<endl; } } return 0; }

溜了溜了