zoukankan      html  css  js  c++  java
  • [Codeforces1174B]Ehab Is an Odd Person

    题目链接

    https://codeforces.com/contest/1174/problem/B

    题意

    给一个数组,只能交换和为奇数的两个数,问最终能得到的字典序最小的序列。

    题解

    • 内心OS:由题,只有交换奇偶的操作。(可略:开始觉得那就是奇数序列内部顺序不变,偶数序列内部顺序不变,然后优先队列。后来想了想不是这么回事...分明通过奇偶交换同奇偶内部顺序也可以变)。结论就是只要有数组中奇偶都存在就可以随便交换位置。同奇偶的交换借助另一个与它们元素不同的另一个元素即可互换位置。
    • 题解方法:当数组只有奇/偶,则输出原数组,否则输出排序后数组即可。

    todo

    好吧这并不是一份AC代码,居然在某个样例超时。可能是卡快排样例?但用List,shuffle再排序也无果。待解决。

    代码

    import java.util.Arrays;
    import java.util.Scanner;
    
    public class OddReOrder {
    	public static void main(String args[]) {
    		Scanner in=new Scanner(System.in);
    		int n=in.nextInt();
    		int[] arr=new int[n];	
    		for(int i=0;i<n;++i) {
    			arr[i]=in.nextInt();
    		}
    		
    		boolean oddFlag=false;
    		boolean evenFlag=false;
    		for(int i=0;i<n;++i) {
    			if((arr[i]&1)==1){
    				oddFlag=true;
    			}
    			else {
    				evenFlag=true;
    			}
    			if(evenFlag&&oddFlag) {
    				break;
    			}
    		}
    		
    		if(evenFlag&&oddFlag) {
    			Arrays.sort(arr);
    		}
    		
    		for(int i=0;i<n;++i) {
    			System.out.print(arr[i]+" ");
    		}
    	} 
    }
    
  • 相关阅读:
    BEC listen and translation exercise 44
    中译英12
    BEC listen and translation exercise 43
    中译英11
    BEC listen and translation exercise 42
    中译英10
    BEC listen and translation exercise 41
    中译英9
    BEC listen and translation exercise 40
    中译英8
  • 原文地址:https://www.cnblogs.com/coding-gaga/p/11006862.html
Copyright © 2011-2022 走看看