0-1背包问题中的递推式为____
A: P[i,c]=max{P[i,c],P[i-1,c-v[i]+p[i]}
B: P[i,c]=max{P[i,c],P[i-1,c-v[i-1]+p[i-1]}
C: P[i,c]=max{P[i-1,c],P[i-1,c-v[i]+p[i]}
D: P[i,c]=max{P[i-1,c],P[i-1,c-v[i-1]+p[i-1]}
A: P[i,c]=max{P[i,c],P[i-1,c-v[i]+p[i]}
B: P[i,c]=max{P[i,c],P[i-1,c-v[i-1]+p[i-1]}
C: P[i,c]=max{P[i-1,c],P[i-1,c-v[i]+p[i]}
D: P[i,c]=max{P[i-1,c],P[i-1,c-v[i-1]+p[i-1]}
举一反三
- 对下面的递归算法,要求写出调用P(3)的执行结果。void P(int i){ if(i>0){ printf(i);P(i-1);P(i-1);}}
- 设有声明"int p[10]={1,2},i=0;",以下语句中与"p[i]=p[i+1],i++;"等价的是:[/i] A: p[i]=p[i++]; B: p[++i]=p[i]; C: p[++i]=p[i+1]; D: i++,p[i-1]=p[i];
- 有关0-1背包问题的跳跃点算法描述正确的是() A: 跳跃点(x,c[i][x])表示装入重量为x时,装入最大价值为c[i][x]。 B: 初始跳跃点为(0,0)。 C: 用p[i]描述c[i][j]的跳跃点,用q[i]描述p[i-1]+(w i,v i),则p[i+1]=p[i]∪q[i],其中i=1,2,...,n D: 用p[i]描述c[i][j]的跳跃点,用q[i]描述p[i-1]+(w i,v i),则p[i+1]=p[i]∪q[i]去掉重量不减,价值反而减少的受控点。其中i=1,2,...,n
- 求5!的程序段有()。 A: int i,p;for(i=1,p=1;i<=5;p*=i,i++); B: int i=1,p=1;for(;;){p*=i++;if (i==6) break;} C: int i=0,p=1;while(i++<=5) p*=i; D: int i=1,p=1;do p*=i;while(++i<=5);
- 不能实现阶乘 8!(结果存放在 p 中) 的程序段是【 】。 A: p=1; for(i=1; i<9; i++) p=p*i; B: p=2; for(i=8; i>3; i--) p=p*i; C: p=1; i=1; while(i<9) p=p*i++; D: p=1; i=8; do{ p=p*i--; } while(i>1);