记忆化搜索在本地尝试了很多数据都是对的,但是到了平台上全错
查看原帖
记忆化搜索在本地尝试了很多数据都是对的,但是到了平台上全错
1064269
Silicon12345楼主2024/1/23 21:46

求助

#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;

int n;
int f[10000000];

int dfs(int n){
	if(n<=0)  return 0;
	
	if(n==1)  return 1;
	if(n==5)  return 1;
	if(n==11) return 1;
	if(f[n]!=-1) return f[n];
	
	
	if(n<5) f[n]=dfs(n-1)+1;
    else if(n>=5 && n<11) f[n]=min (dfs(n-5)+1 , dfs(n-1)+1);
    else{
    	int minn=10000;
		int a[3]={dfs(n-1),dfs(n-5),dfs(n-11)};
		for(int i=0;i<3;i++){
			if(a[i]<minn){
				minn=a[i];
			}
		}
		f[n]=minn+1;
	}
	
	return f[n];
}

int main() {
	cin>>n;
	memset(f,-1,sizeof(f));
	f[0]=0;
	cout<<dfs(n);
	return 0;
} ```
2024/1/23 21:46
加载中...