我用了一维数组做记忆化。。。
  • 板块P1464 Function
  • 楼主lizan7
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/1/31 20:57
  • 上次更新2025/2/1 14:58:21
查看原帖
我用了一维数组做记忆化。。。
1397208
lizan7楼主2025/1/31 20:57

不过灵感是来源于这篇题解中的特征值,现在才发现与一维数组模拟多维数组十分相似。

ll memo[8500];
ll f(ll a,ll b,ll c){
	if(a<=0||b<=0||c<=0)return 1;
	if(a>20||b>20||c>20)return f(20,20,20);
	
	int unique=a+b*20+c*400;
	if(memo[unique]==0)
		if(a<b&&b<c)memo[unique]=f(a,b,c-1)+f(a,b-1,c-1)-f(a,b-1,c);
		else memo[unique]=f(a-1,b,c)+f(a-1,b-1,c)+f(a-1,b,c-1)-f(a-1,b-1,c-1);
	return memo[unique];
}
2025/1/31 20:57
加载中...