解题思路:直接枚举
参考代码:
#include<iostream> using namespace std; const int N=5; int V,S; int maximum=0; int w[N]={0},v[N]={0},s[N]={0}; bool b[N]={0}; void fun(int c) { if(c--) { b[c]=0; fun(c); b[c]=1; fun(c); } else { int num=0,vum=0,sum=0; for(int i=0;i<N;i++) { num+=w[i]*b[i]; vum+=v[i]*b[i]; sum+=s[i]*b[i]; } if(num>maximum&&vum<=V&&sum<=S) maximum=num; } } int main() { cin>>V>>S; for(int i=0;i<N;i++) cin>>w[i]>>v[i]>>s[i]; fun(N); cout<<maximum; return 0; }
0.0分
2 人评分
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:439 |
【密码】 (C语言代码)浏览:333 |
简单的a+b (C语言代码)浏览:573 |
简单的a+b (C语言代码)浏览:630 |
C语言程序设计教程(第三版)课后习题8.2 (C语言代码)浏览:1035 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:771 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:478 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:722 |
小O的数字 (C++代码)浏览:763 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:393 |