萌新的程序只WA了一个点,机房里的大佬居然都没有发现错误
查看原帖
萌新的程序只WA了一个点,机房里的大佬居然都没有发现错误
120017
JeffZhao楼主2021/12/9 19:18
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<vector>

using namespace std;

const int N = 1e6 + 10;

int n , m , d , f[N];

inline int du(){
    int x = 0 , f = 1;
    char ch = getchar();
    while(ch > '9' || ch < '0'){if(ch == '-')f = -1;ch = getchar();}
    while(ch >= '0' && ch <= '9'){x = x * 10 + ch - '0';ch = getchar();}
    return x * f;
}
inline void write(int x){
    if(x < 0){putchar('-');x = -x;}
    if(x > 9)write(x / 10);
    putchar(x % 10 ^ 48);
    return;
}

struct node{
    int st , v;
    node(){}
    node(int _st , int _v){
        st = _st , v = _v;
    }
};

vector<vector<node> > vec(N);

int main(void){

    n = du() , m = du() , d = du();

    int st , ed , v;

    for(int i = 1 ; i <= m ; ++ i){
        st = du() , ed = du() , v = du();
        vec[ed].push_back(node(st , v));
    }

    for(int i = 1 ; i <= n ; ++ i){
        f[i] = max(f[i] , f[i - 1]);
        for(int j = 0 ; j < vec[i].size() ; ++ j){
            f[i] = max(f[i] , f[vec[i][j].st - d - 1] + vec[i][j].v);
        }
    }

    write(f[n]);

    return 0;


}
2021/12/9 19:18
加载中...