杭电oj2037——今年暑假不AC(java实现)

Posted 醉生梦死_0423

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了杭电oj2037——今年暑假不AC(java实现)相关的知识,希望对你有一定的参考价值。

思路:标准贪心

先把所有思路列出来:

1.优先选择开始时间最早的,经分析,不可行

2.优先选择持续时间最短的,经分析,不可行

3.优先选择结束时间最早的,经分析,可行

然后根据第三种思路实现代码就好

 

实现思路:先将数据存在二维数组里,然后用冒泡排序结束时间升序排序,然后遍历一遍,选择时间能衔接得上的

source code:

package hduoj;

import java.util.Scanner;

public class hdoj_2037 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(true){
            int count = sc.nextInt();
            if(count == 0) break;
            int[][] data = new int[count][2];
            for(int i = 0;i<count;++i){
                data[i][0] = sc.nextInt();
                data[i][1] = sc.nextInt();
            }//initialize
            bubble_2D_arr(data);
            int res = 0;
            int index = -1;
            for(int i = 0;i < data.length;++i){
                if(data[i][0]>=index){
                    ++res;
                    index = data[i][1];
                }
            }
            System.out.println(res);
        }
    }

    private static void bubble_2D_arr(int[][] arr){
        boolean flag = false;
        int len = arr.length;//get the line number
        for(int i = 0;i < len;++i){
            for(int j = 1;j < len - i;++j){
                if(arr[j-1][1] > arr[j][1]){
                    int temp1 = arr[j-1][0];
                    int temp2 = arr[j-1][1];
                    arr[j-1][0] = arr[j][0];
                    arr[j-1][1] = arr[j][1];
                    arr[j][0] = temp1;
                    arr[j][1] = temp2;
                    flag = true;
                }
            }
            if(!flag) break;//indicates the seq isn‘t change ever before
        }
    }
}

 

 

代码已经ac

希望对大家有所帮助

以上

 

以上是关于杭电oj2037——今年暑假不AC(java实现)的主要内容,如果未能解决你的问题,请参考以下文章

HDU 2037 今年暑假不AC

(选择不相交区间)今年暑假不AC hdu2037

HDU 2037 今年暑假不AC(贪心,区间更新,板子题)

hdu2037今年暑假不AC(贪心,活动安排问题)

HDU 2037 今年暑假不AC(贪心)

HDU - 2037 今年暑假不AC