为什么记忆化搜索会tle
  • 板块P1806 跑步
  • 楼主caiwen
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/11/13 22:22
  • 上次更新2023/10/27 03:02:15
查看原帖
为什么记忆化搜索会tle
590392
caiwen楼主2022/11/13 22:22

rt。代码如下:

#include<iostream>
#define int long long
using namespace std;

int dp[505][505];
int dfs(int sum,int las){
	int &p=dp[sum][las];
	if(p||las>sum) return p;
	if(sum==las) return p=1;
	for(int i=1;i<=min(sum-las,las-1);i++){
		p+=dfs(sum-las,i); 
	}
	return p;
}

signed main(){
	int n,ans=0;cin>>n;
	/*
	for(int i=1;i<=n;i++){
		dp[i][i]=1;
		for(int j=1;j<i;j++){
			for(int k=1;k<=min(i-j,j-1);k++) dp[i][j]+=dp[i-j][k];
		}
	}
	*/ 
	for(int i=1;i<n;i++) ans+=dfs(n,i);
	cout<<ans;
	return 0;
}

函数调用的耗时很大吗?

2022/11/13 22:22
加载中...