蒟蒻求助
  • 板块P2386 放苹果
  • 楼主dtrthg
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/8/19 13:09
  • 上次更新2023/11/4 10:04:35
查看原帖
蒟蒻求助
379113
dtrthg楼主2021/8/19 13:09

不用记忆化搜索能过,写了记忆化搜索20分,为什么啊嘤嘤嘤


普通递归

#include <bits/stdc++.h>
using namespace std;
int dg(int n,int m)
{
	if(n==0||m==1) return 1;
	if(n<0||m<1) return 0;
	return dg(n,m-1)+dg(n-m,m);
}
int main()
{
	int t;cin>>t;
	while(t--)
	{
		int n,m;
		cin>>n>>m;
		cout<<dg(n,m)<<endl;
	}
	return0;
}

记忆化搜索

#include <bits/stdc++.h>
using namespace std;
int a[100000010];
int dg(int n,int m)
{
	if(n==0||m==1) return 1;
	if(n<0||m<1) return 0;
	if(a[n]>0) return a[n];
	return a[n]=dg(n,m-1)+dg(n-m,m);
}
int main()
{
	int t;cin>>t;
	while(t--)
	{
		int n,m;
		cin>>n>>m;
		cout<<dg(n,m)<<endl;
	}
	return 0;
}
2021/8/19 13:09
加载中...