20分求助!!!
查看原帖
20分求助!!!
965334
1_1_1_1_1_1_楼主2023/8/16 12:51

只过了两个点,还有五个点超时

那位dalao帮我看看

#include<bits/stdc++.h>

using namespace std;

int n, m;

int a[100];
int f[100001];

int main()
{
	int i, j;
	
	cin >> n;
	for(i = 1; i <= n; i++)
	{
		f[i] = 10000000;
	}
	f[0] = 0;
	for(i = 1; i <= 18; i++)
	{
		a[i] = i * i * i * i;//求每个数的4次方 
		if(a[i] > n)
		{
			m = n - 1;//m表示前m个质数都小于n 
			break;
		}
	}
	for(i = 1; i <= m; i++)
	{
		for(j = 1; j <= n; j++)
		{
			if(j >= a[i])
			{
				f[j] = min(f[j], f[j - a[i]] + 1);
			}
		}
	}
	cout << f[n];
}
2023/8/16 12:51
加载中...