36分结构体,贪心求助!
查看原帖
36分结构体,贪心求助!
612152
lijuncheng_1207楼主2023/7/11 23:01
#include<bits/stdc++.h>
using namespace std;
int n,m,a[100010],sum[100010],h;
struct node{
	int l,r,cnt;
}b[100010];
bool cmp(node x,node y){
	return x.r<y.r;
}
int main(){
    cin>>n>>h;
    for(int i=1;i<=h;i++){
    	cin>>b[i].l>>b[i].r>>b[i].cnt;
	}
	sort(b,b+h,cmp);
	int p=0;
	for(int i=1;i<=h;i++){
		if(b[i].l>p){
			a[b[i].r]=b[i].cnt;
		}
		else{
			int su=sum[p]-sum[b[i].l-1];
			if(su<b[i].cnt)a[b[i].r]+=b[i].cnt-su;
		}
		for(int j=p;j<=b[i].r;j++){
			sum[j]=sum[j-1]+a[j];
		}
		p=b[i].r;
	}
	cout<<sum[p]<<endl;
    return 0;
}
2023/7/11 23:01
加载中...