andy6804tw
10/11/2016 - 8:21 AM

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4432 這題的方法是先以結束時間為基準做排序,再來進入迴圈一個一個去比開始時間有沒有

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4432

這題的方法是先以結束時間為基準做排序,再來進入迴圈一個一個去比開始時間有沒有比t大,若有t改成結束時間count++

import java.util.Scanner;

class Pair{
	private int L;
	private int R;
	
	public Pair(int left,int right){
		this.L=left;this.R=right;
	}
	
	public void change(int left,int right){
		this.L=left;this.R=right;
	}
	
	public int getL(){
		return L;
	}
	public int getR(){
		return R;
	}
	
}
public class Main {

	public static void main(String[] args) {
		Scanner scn =new Scanner(System.in);
		int n=scn.nextInt();
		while(n--!=0){
			Pair arr[]=new Pair [21];
			int length=0;
			while(true){
				arr[length] = new Pair(scn.nextInt(),scn.nextInt());
				if(arr[length].getL()+arr[length++].getR()==0){
					length--;
					break;
				}
			}
			for(int i=0;i<length-1;i++){
				for(int j=i+1;j<length;j++){
					if(arr[i].getR()>arr[j].getR()){
						Pair temp=new Pair(arr[i].getL(),arr[i].getR());
						arr[i]=new Pair(arr[j].getL(),arr[j].getR());
						arr[j]=temp;
					}
					else if(arr[i].getR()==arr[j].getR()){
						if(arr[i].getL()>arr[j].getL()){
							Pair temp=new Pair(arr[i].getL(),arr[i].getR());
							arr[i]=new Pair(arr[j].getL(),arr[j].getR());
							arr[j]=temp;
						}
					}
				}
			}
			int t=0,count=0;
			for(int i=0;i<length;i++){
				if(t<=arr[i].getL()){
					t=arr[i].getR();
					count++;
				}
			}
			System.out.println(count);
		}

	}
/*題目:Q12694 Meeting Room Arrangement 結構化方法
    作者:1010
    時間:西元 2016 年 10 月 */
}
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scn =new Scanner(System.in);
		int n=scn.nextInt();
		while(n--!=0){
			int arr[][]=new int [21][2],length=0;
			while(true){
				arr[length][0]=scn.nextInt();
				arr[length][1]=scn.nextInt();
				if(arr[length][0]+arr[length++][1]==0){
					length--;
					break;
				}
			}
			for(int i=0;i<length-1;i++){
				for(int j=i+1;j<length;j++){
					if(arr[i][1]>arr[j][1]){
						int temp=arr[i][1];
						arr[i][1]=arr[j][1];
						arr[j][1]=temp;
						temp=arr[i][0];
						arr[i][0]=arr[j][0];
						arr[j][0]=temp;
					}
					else if(arr[j][1]==arr[i][1]){
						if(arr[i][0]>arr[j][0]){
							int temp=arr[i][1];
							arr[i][1]=arr[j][1];
							arr[j][1]=temp;
							temp=arr[i][0];
							arr[i][0]=arr[j][0];
							arr[j][0]=temp;
						}
					}
				}
			}
			int t=0,count=0;
			for(int i=0;i<length;i++){
				if(t<=arr[i][0]){
					t=arr[i][1];
					count++;
				}
			}
			System.out.println(count);
		}

	}
/*題目:Q12694 Meeting Room Arrangement 二維陣列列方法
    作者:1010
    時間:西元 2016 年 10 月 */
}