牛牛偶像養成記(貪心)

HowieLee59發表於2018-10-15

 

 

為了拯救因入學人數驟降,面臨廢棄的學校,牛牛決定成為偶像啦。當然,作為一個偶像,肯定是要上臺表演的。

已知牛牛拿到了n個上臺表演的機會,第i次表演的上臺時間為ti時刻,需要表演mi這麼長的時間。

牛牛為了提高自己的知名度,肯定要取得最多的上場次數。請問,牛牛最多能上場多少次呢?

輸入描述:

第一行輸入一個數字n(1≤n≤100000),表示牛牛獲得的上臺表演的機會
接下來n行,每行輸入兩個數字ti(1≤ti≤108)和mi(1≤mi≤108), 表示第i次表演機會的上臺時間和該次表演需要的總時間(表演途中不能中斷表演退出)。

輸出描述:

牛牛最多能上場的次數。

示例1

輸入

3
1 2
3 2
5 2

輸出

3

1)

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class Main{
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()) {
			int n = sc.nextInt();
			Node[] node = new Node[n];
			for(int i = 0 ; i < n ; i++) {
				node[i] = new Node();
				node[i].start = sc.nextInt();
				node[i].end = node[i].start + sc.nextInt();
			}
			System.out.println(perform(node,n));
		}
		sc.close();
	}
	private static int perform(Node[] node,int n) {
		Arrays.sort(node, new Comparator<Node>() {
			@Override
			public int compare(Node o1, Node o2) {
				// TODO Auto-generated method stub
				return o1.end - o2.end;
			}
		});
		int result = 0, lastEnd = 0;
		for(int i = 0 ; i < n ; i++) {
			if(node[i].start >= lastEnd) {
				result++;
				lastEnd = node[i].end;
			}
		}
		return result;
	}
}
class Node{
	int start;
	int end;
}
import java.util.*;
public class Main implements Comparable<Main> {//See Main as Act
  int startTime, endTime;
  
  Main(int startTimeInit, int duration) {
    this.startTime = startTimeInit;
    this.endTime = startTimeInit + duration;
  }
  
  public int compareTo(Main other) {return this.endTime - other.endTime;}
  
  public static void main(String[] args) {
    PriorityQueue<Main> pq = new PriorityQueue<>();
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt(), cnt = 0, lastEndTime = 0;
  
    while (n-- != 0)
      pq.add(new Main(sc.nextInt(), sc.nextInt()));
    while (pq.size() != 0) {
      if (pq.peek().startTime >= lastEndTime) {
        cnt++;
        lastEndTime = pq.peek().endTime;
      }
      pq.poll();
    }
    System.out.println(cnt);
  }
}

看懂大佬的答案都要好久,菜是本源啊

相關文章