code[vs] 3027线段覆盖2

来源:互联网 发布:excel列找出重复数据 编辑:程序博客网 时间:2024/06/06 21:39
/*作者:桦清_L*/#include <iostream>#include <algorithm>using namespace std;struct node{    long long int l,r,v;}a[1001];int dp[1001];int cmp(node a,node b){    return a.r<b.r;}int main(){    int n;    cin>>n;    for(int i=0;i<n;i++) cin>>a[i].l>>a[i].r>>a[i].v;    sort(a,a+n,cmp); //右顶点对齐    int m1,m2=0;     //m1记录i之前,与i不相交的线段的价值的最大值    for(int i=0;i<n;i++)    {        m1=0;        for(int j=0;j<i;j++)        {            if(a[j].r<=a[i].l) m1=max(m1,dp[j]);        }        dp[i]=m1+a[i].v;        m2=max(m2,dp[i]);    }    cout<<m2<<endl;    return 0;}

0 0