dalao帮萌新看看这个为什么会MLE啊。。。OTZ
  • 板块P1464 Function
  • 楼主LostELKv
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/7/27 19:27
  • 上次更新2023/11/4 13:07:03
查看原帖
dalao帮萌新看看这个为什么会MLE啊。。。OTZ
396814
LostELKv楼主2021/7/27 19:27
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll x,y,z,ans;
ll f[21][21][21];
ll w(ll x,ll y,ll z)
{
	if(f[x][y][z]!=0)
		return f[x][y][z];
	if(x<=0||y<=0||z<=0)
		return 1;
	if(x==20&&y==20&&z==20)
	{
		f[20][20][20]=w(20,20,20);
		return f[20][20][20];
	}
	if(x>20||y>20||z>20)
	{
		if(f[20][20][20]!=0)
			return f[20][20][20];
		else
		{
			f[20][20][20]=w(20,20,20);
			return f[20][20][20];
		}
	}
	if(x<y&&y<z)
	{
		f[x][y][z]=w(x,y,z-1)+w(x,y-1,z-1)-w(x,y-1,z);
		return f[x][y][z];
	}
	f[x][y][z]=w(x-1,y,z)+w(x-1,y-1,z)+w(x-1,y,z-1)-w(x-1,y-1,z-1);
	return f[x][y][z];
}
int main()
{
	while(1)
	{
		scanf("%lld %lld %lld\n",&x,&y,&z);
		if(x==-1&&y==-1&&z==-1)
			break;
		if(x>20||y>20||z>20)
		{
			if(x>0&&y>0&&z>0)
			{
				x=20;y=20;z=20;
			}
		}
		ans=w(x,y,z);
		printf("w(%lld, %lld, %lld) = %lld\n",x,y,z,ans);
	}
	return 0;
}
2021/7/27 19:27
加载中...