为什么最后一个检测点TEL了啊
  • 板块P1464 Function
  • 楼主ACMyGo
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/12/13 18:40
  • 上次更新2024/12/13 22:04:46
查看原帖
为什么最后一个检测点TEL了啊
1504757
ACMyGo楼主2024/12/13 18:40

//P1464 Function

#include<stdio.h>
#define ll long long

ll m[10003][4];
int len = 0;

ll w(ll a, ll b, ll c) {
	if (a <= 0 || b <= 0 || c <= 0) return 1;
	if (a > 20 || b > 20 || c > 20) return w(20,20,20);
	for (int i = 0; i < len; i++) {
		if (m[i][0] == a && m[i][1] == b && m[i][2] == c) return m[i][3];
	}
	m[len][0] = a;
	m[len][1] = b;
	m[len][2] = c;
	if (a < b && b < c)
		m[len][3] = w(a, b, c - 1) + w(a, b - 1, c - 1) - w(a, b - 1, c);
	else
		m[len][3] = w(a - 1, b, c) + w(a - 1, b - 1, c) + w(a - 1, b, c - 1) - w(a - 1, b - 1, c - 1);

	return m[len++][3];
}

int main() {
	ll a, b, c;
	scanf("%lld %lld %lld", &a, &b, &c);
	while (a != -1 || b != -1 || c != -1) {
		printf("w(%lld, %lld, %lld) = %lld\n",a,b,c, w(a, b, c));
		scanf("%lld %lld %lld", &a, &b, &c);
	}
	return 0;
}
2024/12/13 18:40
加载中...