苏结弦


私信TA

用户名:four4

访问量:3749

签 名:

。。。。

等  级
排  名 1554
经  验 2786
参赛次数 0
文章发表 11
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

 

0.0分

4 人评分

  评论区

#include <iostream>
#include <stdio.h>
#include <string.h>
int max(int a,int b){
	return a>b?a:b;
}
int main(int argc, char *argv[]) {
	int n,m,i,j; 
	scanf("%d%d",&n,&m);
	int w[n+1],v[n+1],dp[n+1][m+1];
	memset(dp,0,sizeof(int)*(n+1)*(m+1));
	for(i=1;i<n+1;i++){
		scanf("%d%d",&w[i],&v[i]);
	}
	for(i=1;i<n+1;i++){
		for(j=1;j<m+1;j++){
			if(w[i]>j){
				dp[i][j]=dp[i-1][j];
			}else{
				dp[i][j]=max(dp[i-1][j],dp[i][j-w[i]]+v[i]);
			}
		}
	}
	printf("max=%d",dp[n][m]);
	return 0;
}
我的简单的动态规划算法求解
2020-10-08 20:11:23
  • «
  • 1
  • »