救!为什么我同一个输入会出现不同答案
查看原帖
救!为什么我同一个输入会出现不同答案
500888
sodiums楼主2021/4/25 20:04
#include <bits/stdc++.h>
using namespace std;
int t, m;
int value[101];
int times[101];
int zhi[1234][1234];
int dfs(int pt, int i)
{// i是当前位置,pt是剩余时间
    if (zhi[i][pt] != -1) { return zhi[i][pt]; }
    if (i == m) { return zhi[i][pt] = 0; }
    int jia, bujia=0xffffff;
    bujia = dfs(pt, i + 1);
    if (pt - times[i] >= 0) { jia = dfs(pt - times[i], i + 1) + value[i]; }

    return zhi[i][pt] = max(jia, bujia);

}

int main()
{
    memset(zhi, -1, sizeof(zhi));
    cin >> t >> m;
    for (int i = 0; i < m; i++) { cin >> times[i] >> value[i]; }
    cout << dfs(t, 0);
    return 0;

}

我在自己电脑上测试没问题啊,数组也不太会是爆掉的样子?难道是dfs里面那两个int的问题么?

2021/4/25 20:04
加载中...