不知道哪里有问题,求大佬看看?
查看原帖
不知道哪里有问题,求大佬看看?
1215992
SDUFE_ZSY楼主2024/10/21 22:07

为什么将memset那行代码注释掉,把f[i]=1那行代码取消注释就成对的了,原来的代码哪里有问题

#include<iostream>
#include<algorithm>
#include<cstring>

using namespace std;

const int N=100010;
int n , m;
int f[N];

struct Node
{
    int x , y , t;
}a[N];

int main()
{
    cin>>n>>m;
    
    for(int i=1 ; i<=m ; i++) cin>>a[i].t>>a[i].x>>a[i].y;

    memset(f , 1 , sizeof f);
    for(int i=1 ; i<=m ; i++){
        //f[i] = 1;
        for(int j=1 ; j<i ; j++)
        {
            int distance = abs(a[i].x-a[j].x) + abs(a[i].y-a[j].y);
            if(distance <= a[i].t-a[j].t)  f[i]=max(f[i],f[j]+1);
        }
    }

    int res = 0;
    for(int i=1 ; i<=m ; i++) res = max(res,f[i]);
    cout<<res<<endl;
    return 0;
}
2024/10/21 22:07
加载中...