3 条题解

  • 1
    @ 2026-1-2 20:35:41

    我又来了啦啦啦啦啦 其实这道题非常的难啊 like this

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+10;
    int a[N],b[N];
    int main(){
    	int n;
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	}
    	while(1){
    		bool ans=1;
    		int flag=0;
    		int t[3];
    		for(int i=1;i<n;i++){
    			if(a[i]<a[i+1]){
    				continue;
    			}else{
    				flag++;
    				t[flag]=a[i];
    			}
    			if(flag==2){
    				if(a[1]>a[2]&&__gcd(a[1],a[2])==1){
    					swap(a[1],a[2]);
    					flag=0;
    				}else{
    					cout<<"No";
    					return 0;
    				}
    			}
    		}
    		if(ans){
    			break;
    		}
    	}
    	cout<<"Yes";
    	return 0;
    } 
    

    那你这么写能对就怪了 经过仔细的观察你会发现 1和所有数互质!(doge 于是乎只要某个序列中有一,那么就可以完成排序 但是 由于给的是排列 所以必定有一; 即必定可以

    信息

    ID
    55
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    (无)
    递交数
    21
    已通过
    11
    上传者