关于盒马10.15号笔试的最后一题

谁能告诉我为什么AC不了,是我的思路有问题吗?

按照时间排序,从前往后dp,检查下来没啥问题,但是只AC了40%,有没有大佬指教下

```
const int N = 1e6+5;

int f[N];

struct Node{
    int x,y,s,t;
};

bool cmp(Node &o1,Node &o2){
    return o1.t < o2.t;
}

Node node[N];

inline int dis(int x1,int y1,int x2,int y2){
    return abs(x1-x2) + abs(y1-y2);
}

int main() {
    int n,m,k;
    memset(f,0,sizeof f);
    cin >> n >> m >> k;
    
    int ans = 0;

    for(int i = 0; i < k; i++){
        cin >> node[i].x >> node[i].y >> node[i].t >> node[i].s;
    }

    sort(node,node+k,cmp);

    for(int i = 0;i < k; i++){
        if(dis(1,1,node[i].x,node[i].y) <= node[i].t) f[i] = node[i].s;
        for(int j = 0; j < i; j++){
            if(dis(node[i].x,node[i].y,node[j].x,node[j].y) <= node[i].t-node[j].t){
                f[i] = max(f[i],f[j]+node[i].s);
            }
        }
        ans = max(ans,f[i]);
    }

    cout << ans << endl;

    return 0;
}
```
全部评论

相关推荐

点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务