中化山东公路建设集团网站,国内免费代理服务器,网站设计 北京店,怎么做表格Problem Description “今年暑假不AC#xff1f;”“是的。”“那你干什么呢#xff1f;”“看世界杯呀#xff0c;笨蛋#xff01;”“#$%^*%...”确实如此#xff0c;世界杯来了#xff0c;球迷的节日也来了#xff0c;估计很多ACMer也会抛开电脑#xff0c;奔向…Problem Description “今年暑假不AC” “是的。” “那你干什么呢” “看世界杯呀笨蛋” “#$%^*%...” 确实如此世界杯来了球迷的节日也来了估计很多ACMer也会抛开电脑奔向电视了。 作为球迷一定想看尽量多的完整的比赛当然作为新时代的好青年你一定还会看一些其它的节目比如新闻联播永远不要忘记关心国家大事、非常67、超级女生以及王小丫的《开心辞典》等等假设你已经知道了所有你喜欢看的电视节目的转播时间表你会合理安排吗目标是能看尽量多的完整节目 Input 输入数据包含多个测试实例每个测试实例的第一行只有一个整数n(n100)表示你喜欢看的节目的总数然后是n行数据每行包括两个数据Ti_s,Ti_e (1in)分别表示第i个节目的开始和结束时间为了简化问题每个时间都用一个正整数表示。n0表示输入结束不做处理。 Output 对于每个测试实例输出能完整看到的电视节目的个数每个测试实例的输出占一行。 Sample Input 12 1 3 3 4 0 7 3 8 15 19 15 20 10 15 8 18 6 12 5 10 4 14 2 9 0 Sample Output 5 正确算法 import java.util.Scanner;/*** 这个题目就是贪心算法题目给出了节目的开始和结束时间要使得能看尽量多的节目那么关键就在于结束时间所以需要将结束时间进行升序(对应的开始时间也要变化)然后从第一个元素开始比较第一个元素结束时间是否小于等于第二个元素的开始时间如果符合则节目数量加1。接着比较第二个元素的结束时间是否小于等于第三个元素的开始时间依次循环。如果不符合则比较第一个元素结束时间是否小于等于第三个元素的开始时间依次循环。*/
public class 今年暑假不AC {public static void sort(int start[], int end[]) {for (int i 0; i end.length - 1; i) {for (int j 0; j end.length - 1 - i; j) {if (end[j] end[j 1]) {int tmp end[j];end[j] end[j 1];end[j 1] tmp;int tmp2 start[j];start[j] start[j 1];start[j 1] tmp2;}}}}public static void main(String[] args) {Scanner input new Scanner(System.in);while (input.hasNext()) {int n input.nextInt();if (n 0) {break;}int[] start new int[n];int[] end new int[n];for (int i 0; i n; i) {start[i] input.nextInt();end[i] input.nextInt();}sort(start, end);
// for (int i 0; i start.length; i) {
// System.out.print(start[i] );
// }
// System.out.println();
// for (int i 0; i end.length; i) {
// System.out.print(end[i] );
// }
// System.out.println();int count1;int tmpend[0];
// System.out.println(start[0] end[0]);for (int i 1; i start.length; i) {if(tmpstart[i]){tmpend[i];count;
// System.out.println(start[i] end[i]);}}System.out.println(count);}}} 转载于:https://www.cnblogs.com/syjp/p/10360527.html