解题思路:直接枚举
参考代码:
#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语言训练-数字母 (C语言代码)浏览:583 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:530 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:603 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:691 |
WU-printf基础练习2 (C++代码)浏览:2001 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:647 |
IP判断 (C语言描述,蓝桥杯)浏览:1094 |
数列有序 (C语言代码)浏览:930 |
分解质因数 (C++代码)浏览:1471 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:657 |