怪兽代码 线性复杂度 #include <iostream> using namespace std; typedef long long ll; int main() {     int n;     cin>>n;     ll force_value[100];     int coin_value[100];     ll ans[101][101];// ans[i][j] 到达i位置,使用了j个金币,所能获得的最大体力     for(int j=0;j<=100;j++){              ans[0][j] = 0;     }          for(int i=1;i<=n;i++){         for(int j=0;j<=100;j++){              ans[i][j] = -1;         }     }     for(int i=1;i<=n;i++){         cin>>force_value[i];     }          for(int i=1;i<=n;i++){         cin>>coin_value[i];     }     for(int i=1;i<=n;i++){         for(int j=1;j<=100;j++){             if (ans[i-1][j]>=force_value[i]){                 ans[i][j] = max(ans[i][j], ans[i-1][j]);             }             if(j>=coin_value[i] && ans[i-1][j-coin_value[i]]!=-1)                 ans[i][j] = max(ans[i][j], ans[i-1][j-coin_value[i]]+force_value[i]);         }     }     for(int i=1;i<=100;i++){         if(ans[n][i]!=-1){             cout<<i<<endl;             break;         }     }     system("pause");     return 0; }
点赞 评论

相关推荐

07-02 22:46
门头沟学院 Java
码农索隆:hr:“管你投没投,先挂了再说”
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务