import java.util.HashSet;
import java.util.Scanner;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.FileReader;
import java.io.File;
class Main
{
private final static int N = 3;
private int money[];
private int num[];
private HashSet<Integer> hs;
private void init()
{
money = new int[]{8, 10, 18};
num = new int[]{5, 4, 6};
hs = new HashSet<Integer>();
}
private void dfs(int cur, int sum)
{
for (int i = cur; i < N; i++) {
if (num[i] > 0) {
num[i]--;
hs.add(new Integer(sum + money[i]));
dfs(i, sum + money[i]);
num[i]++;
}
}
}
public int solve()
{
init();
dfs(0, 0);
return hs.size();
}
public void print()
{
System.out.print(hs);
}
public static void main(String[] args) throws IOException {
Main solver = new Main();
System.out.println(solver.solve());
}
}
题目1072:有多少不同的面值组合?
最新推荐文章于 2023-05-02 17:27:00 发布