鱼C论坛

 找回密码
 立即注册
查看: 2701|回复: 17

[已解决]01背包,我用记忆化搜索做,爆零了

[复制链接]
发表于 2022-11-14 18:11:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zhangjinxuan 于 2022-11-14 21:32 编辑

有一天做 01背包, 我先写了一个记忆化搜索,但是一个测试点都没有过,样例和自己造的一个小数据都过了,为什么呢?

这是我的代码,到底哪儿出了问题呢?
#include <bits/stdc++.h>
using namespace std;

int n, m, f[1001][1001], ans, gw[1001], gv[1001];

int dfs(int i, int v, int w) {
        if (v == 0) return w;
        if (i == n + 1) return w;
        if (f[i][v]) return f[i][v];
        f[i][v] = dfs(i + 1, v, w);
        if (v >= gv[i]) {
                f[i][v] = max(f[i][v], dfs(i + 1, v - gv[i], w + gw[i]));
        }
        return f[i][v];
}

int main() {
        scanf("%d%d", &n, &m);
        for (int i = 1; i <= n; ++i) {
                scanf("%d%d", &gv[i], &gw[i]);
        }
        printf("%d", dfs(1, m, 0));
}

原题:
最佳答案
2022-11-15 18:36:45
本帖最后由 柿子饼同学 于 2022-11-15 18:38 编辑

这就别管了吧
用正常的方法做吧 , 记忆化可能不稳定
我已经退役了...
捕获.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-11-14 20:44:13 | 显示全部楼层
有人吗?谁收藏的?是想慢慢研究吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 21:21:32 | 显示全部楼层
没过的测试点的输入数据是什么?
你得知道输入是什么,输入了什么导致你的程序给出了错误的结果?
没办法重现的问题基本无解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-14 21:25:16 | 显示全部楼层
人造人 发表于 2022-11-14 21:21
没过的测试点的输入数据是什么?
你得知道输入是什么,输入了什么导致你的程序给出了错误的结果?
没办法 ...

我不知道,测试点没有公开
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 21:25:48 | 显示全部楼层
zhangjinxuan 发表于 2022-11-14 21:25
我不知道,测试点没有公开

无解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-14 21:25:49 | 显示全部楼层
人造人 发表于 2022-11-14 21:21
没过的测试点的输入数据是什么?
你得知道输入是什么,输入了什么导致你的程序给出了错误的结果?
没办法 ...

知道我肯定会说出来的,明天再说吧,今天有点晚了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 21:26:30 | 显示全部楼层
    if(v == 0) return w;
价值为0的时候返回体积?
什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 21:28:56 | 显示全部楼层
    printf("%d\n", dfs(1, m, 0));
m是什么?体积?
把m传给v ?
把体积传给价值?
我表示看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 21:30:17 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-14 21:32:25 | 显示全部楼层
人造人 发表于 2022-11-14 21:26
if(v == 0) return w;
价值为0的时候返回体积?
什么意思?

不好意思,没有给原题:
捕获.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-14 21:33:45 | 显示全部楼层
人造人 发表于 2022-11-14 21:30
https://blog.csdn.net/Iseno_V/article/details/100001133

我会DP的01背包,但我就是想问一下这个代码为什么不行?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 21:36:14 | 显示全部楼层
zhangjinxuan 发表于 2022-11-14 21:32
不好意思,没有给原题:

所以说v和w到底是体积和价值还是价值和体积?
怎么同一个问题整出两个完全不同的概念来?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-14 21:41:47 | 显示全部楼层
人造人 发表于 2022-11-14 21:36
所以说v和w到底是体积和价值还是价值和体积?
怎么同一个问题整出两个完全不同的概念来?

原题说了的啊?v是体积,w是收益
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 21:43:12 | 显示全部楼层
我研究研究吧
首先你要明白,无法重现的问题基本上无法解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-15 08:10:08 | 显示全部楼层
人造人 发表于 2022-11-14 21:43
我研究研究吧
首先你要明白,无法重现的问题基本上无法解决

感谢大佬提醒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-15 18:36:45 | 显示全部楼层    本楼为最佳答案   
本帖最后由 柿子饼同学 于 2022-11-15 18:38 编辑

这就别管了吧
用正常的方法做吧 , 记忆化可能不稳定
我已经退役了...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-15 19:23:36 | 显示全部楼层
柿子饼同学 发表于 2022-11-15 18:36
这就别管了吧
用正常的方法做吧 , 记忆化可能不稳定
我已经退役了...

好,感谢前辈提醒,我会加油的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-11-15 19:37:47 | 显示全部楼层
zhangjinxuan 发表于 2022-11-15 19:23
好,感谢前辈提醒,我会加油的!

明年 , 祝你一等奖
要好好努力了

评分

参与人数 1荣誉 +2 鱼币 +1 收起 理由
zhangjinxuan + 2 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 20:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表