题解 | #称砝码#
称砝码
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真好用