社区讨论

本地测试结果一样但就是RE,跪求大佬帮帮弱鸡

P1464[PacNW 1999] Function参与者 2已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@mi7x5eac
此快照首次捕获于
2025/11/21 05:03
4 个月前
此快照最后确认于
2025/11/21 05:03
4 个月前
查看原帖
C
#include <stdio.h>
#include <string.h>
#define ll long long int	//头文件,宏定义,全局变量

ll rbq[25][25][25];
ll w(int a, int b, int c);

int main()
{
	ll a, b, c;
	while (1)
	{
		memset(rbq, 0, sizeof(rbq));					//清零
		scanf("%lld %lld %lld", &a, &b, &c);			//输入
		if (a == -1 && b == -1 && c == -1)				//判断是否结束
			break;
		printf("w(%lld, %lld, %lld) = ", a, b, c);		//输出前半部分
		if (a > 20 || b > 20 || c > 20)					//依题意处理
		{
			a = 20;
			b = 20;
			c = 20;
		}
		printf("%d\n", w(a, b, c));						//输出
	}
}

ll w(int a, int b, int c)								//函数主体
{
	if (a <= 0 || b <= 0 || c <= 0)						//小于零直接结束
		return 1;
	if (rbq[a][b][c] != 0) return rbq[a][b][c];			//以求出直接输出
	if (a < b&&b < c)									//递归求值
		rbq[a][b][c] = w(a, b, c - 1) + w(a, b - 1, c - 1) - w(a, b - 1, c);
	else
		rbq[a][b][c] = 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 rbq[a][b][c];
}

回复

5 条回复,欢迎继续交流。

正在加载回复...