[NOIP2004]火星人

王同学要变强 王同学要变强 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

[NOIP2004]火星人 (nowcoder.com)

import java.util.*;
public class Main{
    public static void main(String []args){
    Scanner sc= new Scanner(System.in);
    int n=sc.nextInt();
    int m=sc.nextInt();
    int e[]=new int[n];
    for(int i=0;i<n;i++){
        e[i]=sc.nextInt();
    }
        while(m>0){ //进行m次全排列后的排列顺序
            m--;
            int one=0;
            for(int i=n-1;i>=0;i--) //one表示从右到左第一个局部最大值
                if(e[i]>e[i-1]){
                    one=i-1;
                    break;
                }
                Arrays.sort(e,one+1,n);
                int p=0;
                for(int i=one+1;i<n;i++)
                    
                    if(e[i]>e[one]){
                        p=i;
                        break;
                    }
                    swap(e,one,p);
                    Arrays.sort(e,one+1,n);
                     }
                
                System.out.print(e[0]);
                for(int i=1;i<n;i++)
                    System.out.print(" "+e[i]);
                    
                
           
        
      }  

        
    

    public static void swap(int a[],int i,int j){
        int temp=a[i];
        a[i]=a[j];
        a[j]=temp;
    }
}

 

...全文
评论
收藏 已收藏
分享
返回顶部
王同学要变强
王同学要变强 优质创作者: Java技术领域 优质创作者: Java技术领域
高校算法学习社区 51,730 成员 6,062 内容