73分求助
  • 板块P1250 种树
  • 楼主Lieyiqi
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/10/28 15:30
  • 上次更新2023/10/28 16:54:07
查看原帖
73分求助
958338
Lieyiqi楼主2023/10/28 15:30

一种看似可行的贪心策略

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
struct node{
    int b,e,t;
}a[N];
bool cmp(node x,node y){
    return x.e<y.e;
}
bool f[N];//flag
int n,m,k,ans=0; 
int main(){
    std::ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    memset(f,0,sizeof f);
    cin>>n>>m;
    for(int i=1;i<=n;i++) cin>>a[i].b>>a[i].e>>a[i].t;
    sort(a+1,a+m+1,cmp);
    for(int i=1;i<=m;i++){
        k=0;
        for(int j=a[i].b;j<=a[i].e;j++) if(f[j]) k++;
        if(k>=a[i].t) continue;
        for(int j=a[i].e;j>=a[i].b;j--){
            if(!f[j]){
                f[j]=1,k++,ans++;
                if(k==a[i].t) break;
            }
        }
    }
    cout<<ans;
    return 0;
}
2023/10/28 15:30
加载中...