90分求助
查看原帖
90分求助
206423
焚魂楼主2021/1/30 22:47

第七个点wa了

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>

using namespace std;

int num[15] ={0,1, 16, 81, 256, 625, 1296, 2401, 4096, 6561, 10000, 14641, 20736, 28561, 38416}; 
int m;
int f[100010];

int main() {
	cin >> m;
	
	for(int i = 1;i <= 14;i++) {
		for(int j = 1;j <= m;j++) {
			if(j >= num[i] && f[j] != 0) {
				f[j] = min(f[j],f[j-num[i]]+1);
			}
			else if(f[j] == 0) {
				f[j] = f[j-num[i]]+1;
			}
		}
	}
	
	cout << f[m] << endl;
	
	return 0;
}
2021/1/30 22:47
加载中...