Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
9459 王循 01背包问题 C++ 通过 100 0 MS 260 KB 533 2020-11-14 10:52:33

Tests(10/10):


#include <bits/stdc++.h> using namespace std; int a[1000],b[1000]; bool c[1000]; int w,n; int Max=-1; void f(int s) { if(s-1==n) { int sum1=0,sum2=0; for(int i=1; i<=n; i++) { if(c[i]==true) { sum1+=a[i]; sum2+=b[i]; } if(sum1>w) { sum1-=a[i]; sum2-=b[i]; break; } } if(sum2>Max)Max=sum2; } else { c[s]=true; f(s+1); c[s]=false; f(s+1); } } int main() { cin>>w>>n; for(int i=1; i<=n; i++)cin>>a[i]>>b[i]; f(1); cout<<Max<<endl; return 0; }


测评信息: