题目:有n种硬币,面值分别为V1,V2,…Vn,每种都有无限多。给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目的最小值和最大值!
代码1:
记忆化搜索:
#include <iostream>
#include <cstring>
using namespace std;
const int MAXN = 10000;
const int INF = 100000000;
int n, S, V[MAXN], d[MAXN], vis[MAXN];
int dpmax(int S) {
if(vis[S]) return d[S];
vis[S]