题解 | #称砝码#
称砝码
https://www.nowcoder.com/practice/f9a4c19050fc477e9e27eb75f3bfd49c
#include<iostream> #include<vector> #include<unordered_set> using namespace std; int main(){ int n ; cin >> n; vector<int> weight(n); vector<int> nums(n); for(int i = 0; i < n ; i++){ cin >> weight[i]; } for(int j = 0 ; j < n ; j++) cin >> nums[j]; unordered_set<int> set; set.insert(0); for(int i = 0; i < n; i++){ // 遍历重量数组 int cur_weight = weight[i]; int cur_num = nums[i]; while(cur_num--){ unordered_set<int> cur_set(set); for(auto it = cur_set.begin(); it!= cur_set.end(); it++) set.insert( *it + cur_weight); } } cout << set.size() << endl; }