鱼C论坛

 找回密码
 立即注册
查看: 1340|回复: 28

[问题求助] 《关于DeepSeek卡死这事》

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

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

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

x
输入

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

  5. const int MAX = 10000010;

  6. int s, n, d;
  7. int A[MAX], B[MAX];
  8. int F[MAX];

  9. int DP(){
  10.         int i, j;
  11.        
  12.         memset(F, 0, sizeof(F));
  13.        
  14.         for(i = 1;i <= d;++i){
  15.                 for(j = A[i];j <= s;++j){
  16.                         F[j] = max(F[j], F[j - A[i]] + B[i]);
  17.                 }
  18.         }
  19.        
  20.         return F[s];
  21. }

  22. int main() {
  23.         int j;
  24.         int t = 0;
  25.        
  26.         scanf("%d %d %d", &s, &n, &d);
  27.        
  28.         t = s % 1000;
  29.         s /= 1000;
  30.        
  31.         for(j = 1;j <= d;++j){
  32.                 scanf("%d %d", &A[MAX], &B[MAX]);
  33.                 A[j] /= 1000;
  34.         }
  35.        
  36.         for(j = 1;j <= n;++j){
  37.                 t += DP();
  38.                 s += t / 1000;
  39.                 t %= 1000;
  40.         }
  41.        
  42.         printf("%d", s * 1000 + t);
  43.        
  44.         return 0;
  45. }
  46. ```
复制代码


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  38. 现在回到代码本身:

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

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

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

  42. 这可能是一个关键问题。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  65. 读取的数字是345,那么它表示百位3、十位
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-2-22 17:41:21 | 显示全部楼层
死亡递归哈哈哈?
小甲鱼最新课程 -> https://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、十位


这还不叫递归,这应该叫死亡叨叨念
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

回帖奖励 +10 鱼币

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

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

测试中奖绝缘何时能中
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

回帖奖励 +10 鱼币

六百六十六
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

回帖奖励 +10 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

回帖奖励 +10 鱼币

拿下 开心吗楼主()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-2-23 11:05:48 | 显示全部楼层
666
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-2-23 11:06:08 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-2-27 10:47:02 | 显示全部楼层
不明觉厉,学习中
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-2-27 12:14:24 | 显示全部楼层
期待期待
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-1 15:08:31 | 显示全部楼层
666啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-1 17:06:59 | 显示全部楼层
测试,递归,然后Ta就死机了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-1 17:08:33 | 显示全部楼层
关于AI卡死这事
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-1 17:09:30 | 显示全部楼层
YYDS
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-3-1 17:12:31 | 显示全部楼层
编程YYDS
让编程改变世界!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-1 17:17:46 | 显示全部楼层
测试,递归,然后Ta就死机了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-1 17:19:02 | 显示全部楼层
测试,递归,然后Ta就死机了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-1 17:20:16 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-3-1 17:20:46 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-22 03:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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