#3#4WA 求调(结果是对的过程错了)
查看原帖
#3#4WA 求调(结果是对的过程错了)
1427426
OceanFuyou楼主2024/8/20 22:04
#include<iostream>
using namespace std;

struct point {
	int x;
	int y;
};

int ways[20][20] = { 0 };
point pB;
point pM;
int way(point p) {
	//控制点返回0
	if (abs(p.x - pM.x) * abs(p.y - pM.y) == 2)return 0;
	if (p.x == pM.x && p.y == pM.y)return 0;
	if (p.x == 0 || p.y == 0)return 1;	
	
	if (ways[p.x][p.y] != 0)return ways[p.x][p.y];
	point p2, p3;
	p2.x = p.x - 1;
	p2.y = p.y;
	p3.x = p.x;
	p3.y = p.y - 1;
	ways[p.x][p.y] = way(p2) + way(p3);
	return ways[p.x][p.y];
}

int main() {
	cin >> pB.x >> pB.y >> pM.x >> pM.y;
	printf("%d", way(pB));
	return 0;
}
2024/8/20 22:04
加载中...