新人求助,只有一个点AC
查看原帖
新人求助,只有一个点AC
1073534
yuanbaoyi楼主2023/9/10 21:14
#include <iostream>
using namespace std;
int main()
{
	int h_x,h_y,w,h,yno = 0,xno = 0;
	cin>>w>>h>>h_x>>h_y;
	int h_ctrl[9][2] = {{0,0},{2,1},{1,2},{-1,2},{-2,1},{-2,-1},{-1,-2},{1,-2},{2,-1}};
	int block[105][105] = {0};
	for (int i = 0;i <= w;i += 1)
	{
		block[i][0] = 1;
	}
	for (int i = 0;i <= h;i += 1)
	{
		block[0][i] = 1;
	}
	for (int i = 1;i <= h ;i += 1)
	{
		for (int j = 1;j <= w;j += 1)
		{
			xno = 0;
			yno = 0;
			for (int k = 0;k < 9;k += 1)
			{
				if (j == h_x + h_ctrl[k][0] && i == h_y + h_ctrl[k][1])
				{
					xno = 1;
					yno = 1;
					break;
				}
				else if (j-1 == h_x + h_ctrl[k][0] && i == h_y + h_ctrl[k][1])
				{
					xno = 1;
				}
				else if (i-1 == h_y + h_ctrl[k][1] && j == h_x + h_ctrl[k][0])
				{
					yno = 1;
				}
			}
			if (xno != 1)
			{
				block[i][j] += block[i][j-1];
			}
			if (yno != 1)
			{
				block[i][j] += block[i-1][j];
			}
		}
	}
	cout<<block[h][w]<<endl;
}
2023/9/10 21:14
加载中...