1
提交解決方案時,它顯示一個運行時錯誤SIGKILL。我不知道爲什麼!請幫忙...!!我不打算討論TLE,我只是想知道SIGKILL的原因是什麼。之後,你可能會建議我更快地解決這個問題的程序。請幫忙,我也一直在堅持這個問題。很長一段時間,但我無法找到運行時錯誤是如何發生的。 這裏是我的代碼::SIGKILL在spoj-LKS
#include<stdio.h>
//#define max(a,b) a>b?a:b
int max (int a,int b){
if (a>b)
return a;
else return b;
}
int V[500];
int W[500];
int F[501][1000001];
int knapsack(int n,int cap){
if (n==0 || cap==0){
F[n][cap]=0;
return 0;
}
else if (cap<1000001){
if (F[n][cap]!=0)
return F[n][cap];
else {
if (W[n-1]>cap){
F[n][cap]=knapsack(n-1,cap);
}
else {
F[n][cap]=max(V[n-1]+knapsack(n-1,cap-W[n-1]),knapsack(n-1,cap));
}
return F[n][cap];
}
}
else {
if (W[n-1]>cap){
return knapsack(n-1,cap);
}
else {
return max(V[n-1]+knapsack(n-1,cap-W[n-1]),knapsack(n-1,cap));
}
}
}
main() {
int k,n,i;
scanf("%d %d",&k,&n);
for (i =0 ;i<n ;i++){
scanf("%d %d",&V[i],&W[i]);
}
printf("%d\n",knapsack(n,k));
}
謝謝@ utkarsh13您answer.I沒有得到你的方式來解決問題,但讓我嘗試這懂了再次= d –
參考此鏈接 的http://計算器的.com /問題/ 17246670/0-1-揹包動態編程-optimazion-從-2D-矩陣到1D-矩陣/ 26325369#26325369 – dazzieta