C++ 当N>=10时,为什么此代码会冻结?
这是一个用C++11编写的程序C++ 当N>=10时,为什么此代码会冻结?,c++,c++11,C++,C++11,这是一个用C++11编写的程序 当text.in的值为N时,我很惊讶它与N==9一起工作 你定义 int dp[40][391] 你在里面读/写 if (n-k>=0) dp[n][k]=dp[n-k][k-1]; dp[n][k]+=dp[n][k-1]; 第一个索引n的范围为1到和,其中 因此,如果N=9,则sum大于40[N==9时sum==45;N==10时sum==55;N==11时sum=66] 因此,当N==11时,当第一个索引的最高合法值为39时,就可以编写dp[
当text.in的值为N时,我很惊讶它与N==9一起工作 你定义
int dp[40][391]
你在里面读/写
if (n-k>=0) dp[n][k]=dp[n-k][k-1];
dp[n][k]+=dp[n][k-1];
第一个索引n的范围为1到和,其中
因此,如果N<9,总和小于40;如果N>=9,则sum大于40[N==9时sum==45;N==10时sum==55;N==11时sum=66]
因此,当N==11时,当第一个索引的最高合法值为39时,就可以编写dp[66][k]
灾难的妙方
if (n-k>=0) dp[n][k]=dp[n-k][k-1];
dp[n][k]+=dp[n][k-1];
int sum = N*(N+1)/2;