题解 | #最小邮票数#

最小邮票数

http://www.nowcoder.com/practice/83800ae3292b4256b7349ded5f178dd1

【C++】已通过

#include<algorithm>
using namespace std;
#define mSN minStampNum
#define ERROR 10000
int a[21];//邮票面值
int dp[101][21];
int minStampNum(int M, int N) {
	if (M < 0)return ERROR;
	//边界
	if (N == 0 && M != 0) {
		dp[M][N] = ERROR;
	}
	if (M == 0) {
		dp[M][N] = 0;
	}

	//核心递推
	if (dp[M][N] == -1) {
		dp[M][N] = min(mSN(M, N - 1), mSN(M - a[N], N - 1) + 1);
	}
	
	return dp[M][N];
	
}
int main() {
	int M, N;
	while (cin >> M >> N) {
		for (int i = 0; i < 101; i++)
			for (int j = 0; j < 21; j++)
				dp[i][j] = -1;//刷新dp数组
		for (int i = 1; i <= N; i++) {
			cin >> a[i];
		}
		if (mSN(M, N) > N) {
			cout << 0 << endl;
		}
		else {
			cout << minStampNum(M, N) << endl;
		}
		
	}

	return 0;
}
全部评论

相关推荐

05-21 18:32
已编辑
湖南工学院 Java
这条干货多数是给i人朋友们分享的,知道你们开不了口,可以试试我说的这些方法1.调整心态:接受初期的尴尬刚开始进入一个新环境,双方都属于一个认识对方的过程,尴尬瞬间是难免存在的。首先,你要接受尴尬,允许自己犯错,实习期本身就是来学习的,同事也不会期待你完美无缺。另外,不要太以自我为中心,其实你的尴尬瞬间也许没有人在意,是因你的对自己的关注而放大了不安全感。2.准备一些防止尴尬的话题和工作相关的,可以以请教的方式开启。比如:xx,这个表格我没有看懂,可以给我讲一下吗非工作的话题,可以聊聊中午吃什么、当地的天气如何、通勤远不远之类的。比如:附近有什么好吃的外卖吗?我刚来还不太熟悉3.每日练习,逐渐打...
sweep^0416:内向人,遇到好的领导很重要,我之前一段实习组里全e人就我一个i 刚入职第一周还会带着我聊一下,后面越来越冷落我,实在受不了,每天去到就想亖,mentor还要pua说是我融入不了集体(我真的以为是我的问题)后面我离职了,去了现在这一家公司,我的领导也是e人,但是我融入的很好,组里的人全都很好很好,也不会出现小团体什么的,所以说内向不是不融入环境的根本,就是公司跟带教的问题
点赞 评论 收藏
分享
04-17 18:32
门头沟学院 Java
野猪不是猪🐗:他跟你一个学校,你要是进来之后待遇比他好,他受得了?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务