B.切长条(贪心)

题意

​ 求切断 n n n个连续片段的最小操作数(竖着切)

思路

​ 问题可转换为最大不相交区间个数这是至少要切的个数,然后就是用活动安排来贪心,以 r r r为第一关键字, l l l为第二关键字排序。

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=5e4+5,M=2e4+5,inf=0x3f3f3f3f,mod=1e9+7;
#define mst(a,b) memset(a,b,sizeof a)
#define PII pair<int,int>
#define fi first
#define se second
#define pb push_back
PII a[N];
int main(){
    int n;scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d%d",&a[i].se,&a[i].fi);
        a[i].fi+=a[i].se;
    }sort(a+1,a+n+1);
    int cnt=0,r=0;
    for(int i=1;i<=n;i++)
        if(r<=a[i].se){
            cnt++;
            r=a[i].fi;
        }printf("%d\n",cnt);
	return 0;
}