用贪心和结构体写比较简单。
先定义一个结构体(struct)l,r。后面跟数组(数据范围自己看)
再用cmp(node &x,node &y)return x.r>y.r。
进入主程序定义n,t,s=1。输入n和t。
开始时t要++;然后for输入数组结构体l,r;
输入完后a[i].r++结束。
再写sort排个序。
定义ans(cnt,sum都行),maxr(max,maxn都行);
警告maxr=s-1;
在进入for,判断a[i].l是否大于s,如果大于的话,里面在判断a[i].l是否maxr,如果大于就break(不写else),ans++,maxr就附值给s。
如果不大于不要写else!!!
可以直接后面再跟if判断a[i].l是否小于等于s,如果a[i].l小于等于s,maxr就等于maxr和a[i].l的最大值(max)。不等于也不要写else。(死都不写else)
这个if结束完后在判断maxr是否大于或等于t,如果大于t就直接break结束。
跳出for,再判断maxr是否大于t,如果大于,就输出ans。
不大于就输出-1.(终于可以写else了)。
本蒟蒻只能帮助大家到这。(给个关注呗,求求啦!!!)