大佬帮看下我的代码有啥问题没?也是贪心的思想,不过并没有基于算导的那些公式;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Main {
    static class P implements Comparable<P>{
        int a, b;
        P(int c, int d) {
            a = c;
            b = d;
        }

        @Override
        public int compareTo(P o) {
            return a - o.a;
        }

        public String toString() {
            return a + "," + b;
        }
    }

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        int m = s.nextInt();
        List<P> list = new ArrayList<P>();
        for (int i=0; i<n; i++) {
            int a = s.nextInt(), b = s.nextInt();
            if (a > b) b += m;
            list.add(new P(a, b));
        }
        Collections.sort(list);
        //System.out.println(list);
        int cnt = 0;
        List<P> r = new ArrayList<P>();
        for (int i=0; i<list.size(); i++) {
            if (r.size() == 0) { //第一个直接加入
                cnt ++;
                r.add(list.get(i));
            } else if (list.get(i).a < r.get(r.size()-1).b) { //如果当前区间和已经加入的区间冲突那么就不加入
                //System.out.println(list.get(i) + "," + r.get(r.size()-1));
                continue;
            } else {
                r.add(list.get(i));
                cnt ++;
            }
        }
        System.out.println(cnt);
        s.close();
    }
}

最后通过了33.33%,我也没注意到只能是当天收看这个条件,是不是还有其他问题?求教。