警示后人(40分or20分)
查看原帖
警示后人(40分or20分)
802681
wangziyue_AK楼主2023/11/21 16:54

20分错误:

for(int j=m;j>=w[i];j--){
	dp[j]=max(dp[j]+v1[i],dp[j-w[i]]+v2[i]);
}

没有药了也能有失败经验 40分错误:

for(int i=1;i<=n;i++){
		for(int j=m;j>=1;j--){
			if(j>=w[i])dp[j]=max(dp[j]+v1[i],dp[j-w[i]]+v2[i]);
			else dp[j]+=v1[i];
		}
	}

0颗药也可以,第二层循环要到0 40分错误2:

for(int i=1;i<=n;i++){
		for(int j=m;j>=1;j--){
  			dp[j]+=v1[i];
			if(j>=w[i]) dp[j]=max(dp[j],dp[j-w[i]]+v2[i]);			
		}
	}

有时0颗药也能胜利,失败会加两次 100分:

for(int i=1;i<=n;i++){
		for(int j=m;j>=1;j--){
			if(j>=w[i]) dp[j]=max(dp[j]+v1[i],dp[j-w[i]]+v2[i]);
			else dp[j]+=v1[i];
		}
	}
2023/11/21 16:54
加载中...