讨论 / Why?!
飞雪天涯 2011-08-04 22:19:00
点我顶贴 收藏 删除
50分:

#include <iostream>

using namespace std;

int main(void){

long n,health[100],gain[100],dp[100];

cin>>n;

for(int i=0;i<n;i++) cin>>health[i];

for(int i=0;i<n;i++) cin>>gain[i];

for (int i=0;i<n;i++)

for (j=100;j>=health[i];j--)

if(dp[j-health[i]]+gain[i]>dp[j]) dp[j]=dp[j-health[i]]+gain[i];

cout<<dp[100];

return 0;

}

30分:

#include <iostream>

using namespace std;

int main(void){

long n,health[100],gain[100],dp[100];

cin>>n;

for(int i=0;i<n;i++) cin>>health[i];

for(int i=0;i<n;i++) cin>>gain[i];

for (int i=0;i<n;i++)

for (j=99;j>=health[i];j--)

if(dp[j-health[i]]+gain[i]>dp[j]) dp[j]=dp[j-health[i]]+gain[i];

cout<<dp[99];

return 0;

}

#1 sunwenlongtan@2011-08-04 22:19:00
回复 删除
不知道

我也碰到过

查看更多回复
提交回复