题解 | #称砝码#
称砝码
https://www.nowcoder.com/practice/f9a4c19050fc477e9e27eb75f3bfd49c
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int kinds = Integer.parseInt(sc.nextLine()); String[] weightArr = sc.nextLine().split(" "); String[] numArr = sc.nextLine().split(" "); Set<Integer> set = new HashSet<>(); set.add(0); for(int i = 0; i < weightArr.length;i ++){ for(int j = 0; j < Integer.parseInt(numArr[i]); j ++) { Set<Integer> tmpSet = new HashSet<>(); Iterator<Integer> iterator = set.iterator(); while (iterator.hasNext()) { tmpSet.add(iterator.next() + Integer.parseInt(weightArr[i])); } set.addAll(tmpSet); } } System.out.println(set.size()); } }