题解 | #称砝码#
称砝码
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;
}
腾讯成长空间 1121人发布