题意
能否把他改为non?decreasingnon-decreasingnon?decreasing序列
且更换时只能二者的gcdgcdgcd为数组最小的数时可以更换
题意
显然因为他说的数组中最小的数,那么要更换二者的gcdgcdgcd为该数就只能,每一个数和这个最小的数gcdgcdgcd都为最小的数。
所以看一下不在位置上的gcd(x,minn)gcd(x,minn)gcd(x,minn)是否为minnminnminn即可
#include<bits/stdc++.h>using namespace std;
const int maxn=1e5+10;
int a[maxn],b[maxn];
void solve(){
int n;cin>>n;int minn=1e9+10;for(int i=1;i<=n;++i){
cin>>a[i];minn=min(minn,a[i]);b[i]=a[i];}sort(b+1,b+1+n);int flag=0;for(int i=1;i<=n;++i){
if(a[i]!=b[i]){
if(__gcd(a[i],minn)!=minn)flag=1;}}if(flag)cout<<"NO\n";else cout<<"YES\n";}int main(){
int t;cin>>t;while(t--){
solve();}
}