鱼C论坛

 找回密码
 立即注册
查看: 229|回复: 24

[吹水] 《关于DeepSeek卡死这事》

[复制链接]
回帖奖励 60 鱼币 回复本帖可获得 10 鱼币奖励! 每人限 2 次(中奖概率 10%)
发表于 2025-2-22 16:37:19 | 显示全部楼层 |阅读模式

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

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

x
输入
这是洛谷题目P1853的一份代码,请找出它的错误:
```cpp
#include <bits/stdc++.h>
using namespace std;

const int MAX = 10000010;

int s, n, d;
int A[MAX], B[MAX];
int F[MAX];

int DP(){
        int i, j;
        
        memset(F, 0, sizeof(F));
        
        for(i = 1;i <= d;++i){
                for(j = A[i];j <= s;++j){
                        F[j] = max(F[j], F[j - A[i]] + B[i]);
                }
        }
        
        return F[s];
}

int main() {
        int j;
        int t = 0;
        
        scanf("%d %d %d", &s, &n, &d);
        
        t = s % 1000;
        s /= 1000;
        
        for(j = 1;j <= d;++j){
                scanf("%d %d", &A[MAX], &B[MAX]);
                A[j] /= 1000;
        }
        
        for(j = 1;j <= n;++j){
                t += DP();
                s += t / 1000;
                t %= 1000;
        }
        
        printf("%d", s * 1000 + t);
        
        return 0;
}
```

输出
<think>
嗯,我现在得仔细看看这个C++代码有没有问题。这道题是洛谷的P1853,大概是一个动态规划的问题。

首先,我注意到在main函数里,初始化了三个变量s、n、d。然后t初始化为s%1000,s /= 1000。这样处理会不会有问题呢?比如当s非常大的时候会不会溢出?因为题目中的输入可能很大,所以s会是超过int的范围吗?或者这个做法是否正确?

接着看循环部分,从j=1到d循环,每次读取两个数作为A和B,并将它们除以1000保存在数组中。然后计算每个j能否达到的最大值。这可能有问题的地方在于,读取的是整数对吗?比如,如果原题中的输入是三位数的,那么每读取两数字的时候就会被处理成两位小数?比如,原题中s、n、d可能是由三个三位数组成的,所以除以1000的话,就是三位数转换为十位、百位、千位的小数?

然后在dp函数里,初始化了一个F数组。然后对于每个i从1到d循环,j从A[i]开始到s结束。这可能会有问题吗?比如,当读取的A和B不是两位小数的话,处理方式不对,可能导致计算错误。

那问题出在哪里呢?可能是在读取的时候没有正确处理小数点后的位数。原题中的输入是三位整数,所以每组数据应该是百、十、个位,也就是每个数可以表示为百位+十位*10 + 个位*100。因此,要将它们转换成十进制的数值时需要除以1000吗?比如,假设一个三位数是345,那么它对应的数值应该是3.45,也就是345/100吗?或者是否应该处理为三个数字分别代表百、十、个位?

哦,这可能是个误解。原题中的输入s、n、d的值是否是三位数,而A和B则是两位小数的情况呢?比如,假设每个数都是三位整数,那么读取的时候可能是这样:当输入一个数时,比如说123,那么代表的是1.23吗?或者题目中的数据处理方式可能与我的理解不同。

或者原题中,每个A[j]和B[i]的数值是三位整数,比如在问题描述中,n、d等变量被读取了三组,每组都是百位到个位的数字。所以,在main函数中,t初始化为s%1000,这可能表示的是t等于三个数字组成的数mod 1000后的值?比如,假设s=2567,那么t=67?或者是否是将这三位数除以100得到一个十位和个位的数值?

那问题来了:在dp函数中,F数组的大小是不是足够处理所有可能的情况呢?比如,如果s是个很大的数,而A[i]和B[i]都是三位整数,那么j的最大值可能是1e6左右吗?假设MAX是1e7,这样应该没问题。但是如果处理的方式不对的话,可能会出现越界错误。

另一个可能的问题是,在dp函数中,当读取A和B的时候,是否正确地将它们转换为十进制的数值?比如,假设问题中的输入每个数都是三位整数,那么每组数据代表的是百位+十位*10 + 个位*100吗?或者是不是应该将它们除以100得到十位和个位的小数?

这可能会影响后面的计算。例如,当处理一个i的时候,A[i]是三位数,比如345,那代表的是3百、4十、5个吗?那是否需要将其转换为数值3.45呢?或者是否应将它视为3.45这样的数?

这个时候,我可能需要重新审视问题。假设原题中的输入方式是:读取s是一个三位整数(比如256),然后n也是一个三位整数,d又是三位整数。那么,在计算的时候,可能应该将这三组数分别处理为百位、十位和个位的数字,并将其转换为数值形式。

例如,假设原题中的输入是这样的:
s = 123 → 代表1.23
n = 456 → 代表4.56
d = 789 → 代表7.89

那么,每个数在处理时应该将其作为百位+十位*10 +个位*100的形式吗?或者是否需要将它们转化为数值形式的百、十、个部分?

或者,原题中的输入方式是这样的:读取三个整数,比如s的值是三位,n的值是三位,d的值是三位。然后,在dp函数中,A[i]和B[i]分别代表的是一个三位数的数值吗?例如,假设每个数的百位、十位、个位是独立的,那么这可能需要将它们转换为十进制的形式,比如123 → 1.23(但那似乎不正确)或者是否应该把每个数看作三个数字组成的数?

哦,这里可能有一个错误的理解。原题中的输入可能是这样的:假设每组数据是三位整数,并且这些整数可以转换为十进制的数值。例如,当读取一个数字时,比如345,那么它代表的是3百+4十+5个,即345?那这可能不是十进制的小数形式。

或者,原题中的每个数是三位整数,并且在处理的时候被除以100得到一个数值。例如,假设每个数字代表的是百位、十位和个位的数字,那么它们分别表示为a, b, c的话,那么对应的数值可能是 100*a + 10*b + c。或者是否应该将它们视为整数的十进制形式?

这可能会影响后面的计算结果。比如,在dp函数中,当读取A[i]和B[i]时,是否正确地将其视为三位整数,并进行处理?

假设问题中的每个数字都是三位整数,那么在处理的时候,需要将其转换为一个数值,如将123视为整数的数值形式(即123),而不仅仅是三位数字。或者,这可能与问题的具体情况不同。

现在回到代码本身,我注意到,在读取A和B时,是否正确地将它们除以1000?例如:

比如,假设原题中的输入是三位数,那么每个数表示为百位、十位、个位的数字。那么,如何将这三个数字转换为数值形式呢?

比如,当处理一个数的时候,百位a,十位b,个位c,则这个数等于 a*100 + b*10 + c?或者是否应该除以100得到十进制的形式?

哦,这可能是一个误解。原题中的问题可能是:输入三个三位数字,分别代表这三个部分的数值,比如s=256表示百位2、十位5、个位6,那么它对应的数值是 2*100 +5*10+6 =256吗?或者是否应该视为2.56这样的数值?

这可能影响后面的计算。例如,在dp函数中,假设A[i]和B[i]分别代表的是百位、十位、个位的数字,那么这三个数字组成的数值应该是 a*100 + b*10 + c吗?或者是否应该将它们视为三位数的小数形式?

比如,假设问题中的输入是这样的:当输入一个数的时候,它表示的是这个数的百位、十位和个位数字。例如,123意味着百位是1,十位是2,个位是3。那么数值应该是 1*100 + 2*10 +3 =123吗?那这可能与问题中的处理方式无关。

或者,原题中的每个数表示的是百位、十位和个位的数字,并且这些数字直接作为数值的形式来计算,比如将345视为3.45吗?这样可能会导致后面的计算出现问题。例如,在dp函数中,如果A[j]是三位数,那么将其除以100得到一个十进制的小数。

但原题中的问题描述可能需要重新审视。或者,我是否弄错了问题中的输入处理方式?

假设每个数字都是三位整数,并且在处理的时候应该视为三位数的数值形式,比如将345作为3.45这样的小数?这可能不太对,因为345是一个整数。

或者,原题中的三个数字分别代表百位、十位和个位,那么它们组成的数值应该是 a*100 +b*10 +c。例如,当输入的数字是123的时候,它对应的数值为123吗?那这可能与问题中的处理方式无关。

或者,原题中的每个数都表示的是这个数的百位、十位和个位数字,并且在处理时,将这三个数字分别作为a, b, c来计算。比如,当输入一个三位数的时候,那么它代表的是a*100 +b*10 +c吗?

假设问题中的每个数是这样的:读取的三位数表示百位、十位和个位的数字,并且数值为这个三位数本身。例如,345表示3百+4十+5个=345。

那在dp函数中,当处理A[i]时,是否正确地将其视为三个数字来计算?比如,将A[i]视为10*a +b的数值形式?

这可能是一个错误的理解,导致后面的计算出现错误。

或者,原题中的每个数是三位整数,并且在处理的时候被除以100得到一个十进制的小数。例如,输入数字345代表百位3,十位4,个位5,那么数值为3.45吗?这可能与问题中的处理方式无关。

现在回到代码本身:

我注意到,在读取A和B的时候,是否正确地将它们视为三位整数,并且进行处理。例如,假设s的值是345,那么A[i]被读取为一个三位整数。然后在dp函数中,当计算a和b时,是否正确地将其转化为十进制数值?

比如,在读取A[i]的时候,可能需要将它视为三个数字,分别作为百位、十位、个位的数字来处理。

例如,假设输入的数是345,那么百位是3,十位是4,个位是5。然后在dp函数中,当计算a和b时,是否正确地将其转化为10*a + b?或者是否需要将它们视为三位整数的数值形式?

这可能是一个关键问题。

假设原题中的输入方式是这样:读取一个三位整数,表示百位、十位和个位的数字。然后在计算的时候,要将其转换为一个数值形式,比如 a*100 + b*10 + c吗?或者是否需要将它们视为三位整数的数值形式?

这可能是一个误解,导致后面的处理出现错误。

例如,假设问题中的每个输入都是三位整数,并且在处理的时候被除以100得到一个十进制的小数。那么:

比如,输入345表示百位3,十位4,个位5,那么a=3,b=4,c=5吗?或者是否需要将它们视为百位、十位和个位的数字,然后转换为 10*a + b 的数值形式?

这可能是一个关键问题。我需要重新审视原题中的处理方式。

或者,原题中的每个输入都是三位整数,并且在处理的时候被除以100得到一个十进制的小数。例如:

当读取345时,它表示百位3、十位4和个位5,那么数值为 3.45吗?那这可能与问题中的处理方式无关。

或者,原题中的每个输入都是三位整数,并且在处理的时候被除以10得到一个十进制的小数。例如:

读取的数字是345,那么它表示百位3、十位4和个位5吗?那这可能与问题中的处理方式无关。

或者,原题中的每个输入都是三位整数,并且在处理的时候被除以10得到一个十进制的小数。例如:

读取的数字是345,那么它表示百位3、十位4和个位5吗?那这可能与问题中的处理方式无关。

或者,原题中的每个输入都是三位整数,并且在处理的时候被除以10得到一个十进制的小数。例如:

读取的数字是345,那么它表示百位3、十位4和个位5吗?那这可能与问题中的处理方式无关。

或者,原题中的每个输入都是三位整数,并且在处理的时候被除以10得到一个十进制的小数。例如:

读取的数字是345,那么它表示百位3、十位4和个位5吗?那这可能与问题中的处理方式无关。

或者,原题中的每个输入都是三位整数,并且在处理的时候被除以10得到一个十进制的小数。例如:

读取的数字是345,那么它表示百位3、十位4和个位5吗?那这可能与问题中的处理方式无关。

或者,原题中的每个输入都是三位整数,并且在处理的时候被除以10得到一个十进制的小数。例如:

读取的数字是345,那么它表示百位3、十位4和个位5吗?那这可能与问题中的处理方式无关。

或者,原题中的每个输入都是三位整数,并且在处理的时候被除以10得到一个十进制的小数。例如:

读取的数字是345,那么它表示百位3、十位4和个位5吗?那这可能与问题中的处理方式无关。

或者,原题中的每个输入都是三位整数,并且在处理的时候被除以10得到一个十进制的小数。例如:

读取的数字是345,那么它表示百位3、十位
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2025-2-22 17:41:21 | 显示全部楼层
死亡递归哈哈哈?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-2-22 17:42:46 | 显示全部楼层
当读取345时,它表示百位3、十位4和个位5,那么数值为 3.45吗?那这可能与问题中的处理方式无关。

或者,原题中的每个输入都是三位整数,并且在处理的时候被除以10得到一个十进制的小数。例如:

读取的数字是345,那么它表示百位3、十位4和个位5吗?那这可能与问题中的处理方式无关。

或者,原题中的每个输入都是三位整数,并且在处理的时候被除以10得到一个十进制的小数。例如:

读取的数字是345,那么它表示百位3、十位4和个位5吗?那这可能与问题中的处理方式无关。

或者,原题中的每个输入都是三位整数,并且在处理的时候被除以10得到一个十进制的小数。例如:

读取的数字是345,那么它表示百位3、十位4和个位5吗?那这可能与问题中的处理方式无关。

或者,原题中的每个输入都是三位整数,并且在处理的时候被除以10得到一个十进制的小数。例如:

读取的数字是345,那么它表示百位3、十位4和个位5吗?那这可能与问题中的处理方式无关。

或者,原题中的每个输入都是三位整数,并且在处理的时候被除以10得到一个十进制的小数。例如:

读取的数字是345,那么它表示百位3、十位4和个位5吗?那这可能与问题中的处理方式无关。

或者,原题中的每个输入都是三位整数,并且在处理的时候被除以10得到一个十进制的小数。例如:

读取的数字是345,那么它表示百位3、十位4和个位5吗?那这可能与问题中的处理方式无关。

或者,原题中的每个输入都是三位整数,并且在处理的时候被除以10得到一个十进制的小数。例如:

读取的数字是345,那么它表示百位3、十位4和个位5吗?那这可能与问题中的处理方式无关。

或者,原题中的每个输入都是三位整数,并且在处理的时候被除以10得到一个十进制的小数。例如:

读取的数字是345,那么它表示百位3、十位


这还不叫递归,这应该叫死亡叨叨念
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-2-23 09:10:03 | 显示全部楼层

回帖奖励 +10 鱼币

本帖最后由 sfqxx 于 2025-2-23 09:47 编辑

遇到过hhh,然后Ta就死机了

测试中奖绝缘何时能中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-2-23 09:40:24 | 显示全部楼层

回帖奖励 +10 鱼币

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

使用道具 举报

发表于 2025-2-23 09:50:57 | 显示全部楼层

回帖奖励 +10 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2025-2-23 09:54:32 | 显示全部楼层

回帖奖励 +10 鱼币

拿下 开心吗楼主()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-2-23 11:05:48 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2025-2-23 11:06:08 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2025-2-27 10:47:02 | 显示全部楼层
不明觉厉,学习中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-2-27 12:14:24 | 显示全部楼层
期待期待
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-1 15:08:31 | 显示全部楼层
666啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-1 17:06:59 | 显示全部楼层
测试,递归,然后Ta就死机了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-1 17:08:33 | 显示全部楼层
关于AI卡死这事
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-1 17:09:30 | 显示全部楼层
YYDS
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2025-3-1 17:12:31 | 显示全部楼层
编程YYDS
让编程改变世界!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-1 17:17:46 | 显示全部楼层
测试,递归,然后Ta就死机了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-1 17:19:02 | 显示全部楼层
测试,递归,然后Ta就死机了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-1 17:20:16 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2025-3-1 17:20:46 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-3-10 06:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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