题解 | #称砝码#
称砝码
https://www.nowcoder.com/practice/f9a4c19050fc477e9e27eb75f3bfd49c
#include <iostream>
#include <set>
using namespace std;
int main() {
set<int> f,tmp;
set<int>::iterator it;
int n,a[10],b[10],i,j,k;
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n;i++)
cin>>b[i];
f.insert(0);
for(i=0;i<n;i++){
for(j=1;j<=b[i];j++){
tmp=f;
for(it=f.begin();it!=f.end();it++){
tmp.insert(a[i]+*it);
}
f=tmp;
}
}
cout<<f.size();
return 0;
}
// 64 位输出请用 printf("%lld")
set真好用
