记忆化搜索写挂了,HELP
查看原帖
记忆化搜索写挂了,HELP
250699
mot1ve楼主2021/10/21 17:14

样例都过不去qaq

#include<bits/stdc++.h>
using namespace std;
int n,k,ans;
struct node{
	int l,r;
}a[100010];
vector<int> g[10010];//存每个时刻的任务
int f[100010];
//f[x]表示从x时间之后的耗时最小的 
int dfs(int x,int sum)//时刻,耗时 
{
	if(x>n)
	return sum;
	if(f[x]!=-1)
	return f[x];
	else
	{
		if(!g[x].size())//没有任务 
		return f[x]=dfs(x+1,sum);
		else
		{
			int t=0x3f3f3f3f;
			for(int i=0;i<g[x].size();i++)
			{
				t=min(t,dfs(x+g[x][i],sum+g[x][i]));
			}
			return f[x]=t;
		}
	}
}
int main()
{
	memset(f,-1,sizeof(f));
	cin>>n>>k;
	for(int i=1;i<=k;i++)
	{
		int x,y;
		scanf("%d%d",&x,&y);
		g[x].push_back(y);
	}
	cout<<n-dfs(1,0);
	return 0;
} 
2021/10/21 17:14
加载中...