活动安排问题
2017-10-17 13:58
477 查看
题目描述:
X轴上有N条线段,每条线段有1个起点S和终点E。最多能够选出多少条互不重叠的线段。(注:起点或终点重叠,不算重叠)。
例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重叠。
输入
第1行:1个数N,线段的数量(2 <= N <= 10000)
第2 - N + 1行:每行2个数,线段的起点和终点(-10^9 <= S,E <= 10^9)
输出
输出最多可以选择的线段数量。
输入示例
3
1 5
2 3
3 6
输出示例
2
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class ActivityPlan {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
Integer[][] a = new Integer[N + 5][2];
for (int i = 1; i <= N; i++) {
a[i][0] = scanner.nextInt();
a[i][1] = scanner.nextInt();
}
Arrays.sort(a, 1, N, (aa, bb) -> aa[1] - bb[1]);
int count = 0;
int e = a[1][1];
if (e != 0)
count++;
for (int i = 2; i <= N; i++) {
if (a[i][0] >= e) {
count++;
e = a[i][1];
}
}
System.out.println(count);
}
}
X轴上有N条线段,每条线段有1个起点S和终点E。最多能够选出多少条互不重叠的线段。(注:起点或终点重叠,不算重叠)。
例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重叠。
输入
第1行:1个数N,线段的数量(2 <= N <= 10000)
第2 - N + 1行:每行2个数,线段的起点和终点(-10^9 <= S,E <= 10^9)
输出
输出最多可以选择的线段数量。
输入示例
3
1 5
2 3
3 6
输出示例
2
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class ActivityPlan {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
Integer[][] a = new Integer[N + 5][2];
for (int i = 1; i <= N; i++) {
a[i][0] = scanner.nextInt();
a[i][1] = scanner.nextInt();
}
Arrays.sort(a, 1, N, (aa, bb) -> aa[1] - bb[1]);
int count = 0;
int e = a[1][1];
if (e != 0)
count++;
for (int i = 2; i <= N; i++) {
if (a[i][0] >= e) {
count++;
e = a[i][1];
}
}
System.out.println(count);
}
}
相关文章推荐
- 51nod 活动安排问题 《贪心+dp》
- 51nod 1428 活动安排问题(贪心)
- 51nod1428 活动安排问题 (贪心加暴力)
- 贪心算法——活动安排问题
- hoj 1072 活动安排问题
- 活动安排(选择)问题拓展
- HDU--活动安排问题--今年暑假不AC2037
- 贪心算法(活动安排问题)
- 关于最优化问题(贪心,背包,活动安排)小谈
- 51nod 1428 活动安排问题
- 活动安排问题
- 活动安排问题
- ACM--贪心算法--活动安排问题二
- 51nod1428 活动安排问题
- 51nod 1428 活动安排问题
- 会场安排问题(求一个会场举办活动最多数目)
- hdu Priest John's Busiest Day 活动安排问题变形 只取一半时间
- 【算法导论】贪心算法之活动安排问题
- 活动安排问题--贪心算法
- hdu2037-----------贪心, 活动安排问题