一点小问题
查看原帖
一点小问题
1286053
Nostopathy楼主2024/7/19 08:27

这段代码是过了的:

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
#define ms(a, b) memset(a, b, sizeof a)
int n;
int sum;
int cur = 1;
int nums[250];
int dp[1000010];
int main(){
	cin >> n;
	nums[++ sum] = 1;
	for(int i = 1; i <= 8; ++ i) { cur *= 6; nums[++ sum] = cur; }
	cur = 1;
	for(int i = 1; i <= 6; ++ i) { cur *= 9; nums[++ sum] = cur; }
	stable_sort(nums + 1, nums + sum + 1);
	ms(dp, 0x3f);
	dp[0] = 0;
	for(int i = 1; i <= sum; ++ i) {
		for(int j = nums[i]; j <= n; ++ j) {
			dp[j] = min(dp[j], dp[j - nums[i]] + 1);
		}
	}
	cout << dp[n] << '\n';
}

但是把 ms(dp, 0x3f) 换成 ms(dp, 0x7fffffff) 就过不了样例(-1),请问这是什么原因QAQ

2024/7/19 08:27
加载中...