kedaOJ#P0891. 四次方数

题目

P0891. 四次方数

思路

简单的动态规划

代码

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int m;
int v[19] = {1, 16, 81, 256, 625, 1296, 2401, 4096, 6561, 10000, 14641, 20736, 28561, 38416, 50625, 65536, 83521};
int dp[100001];
int main() {
	scanf("%d", &m);
	memset(dp, 0x3f, sizeof(dp));
	dp[0] = 0;
	for (int i = 0; i <= 17; i++)
		for (int j = v[i]; j <= m; j++)
			dp[j] = min(dp[j], dp[j - v[i]] + 1);
	printf("%d", dp[m]);
	return 0;
}
posted @ 2024-06-24 20:40  mcr130102  阅读(6)  评论(0编辑  收藏  举报
请不要抄袭任何人的博客,这是对一名开发者最基本的尊重。