社区讨论

求助,40分,WA

P1002[NOIP 2002 普及组] 过河卒参与者 1已保存回复 0

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@lo1hny1v
此快照首次捕获于
2023/10/22 21:12
2 年前
此快照最后确认于
2023/11/02 21:48
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
long long a[25][25];
int n,m,x,y,b[2][10]={{-2,-2,+2,+2,-1,-1,+1,+1},{-1,+1,-1,+1,-2,+2,-2,+2}};
int main(){
	cin>>n>>m>>x>>y;
	a[0][0]=1,a[x][y]=-1;
	for(int i=0;i<8;i++)
		a[max(x+b[0][i],0)][max(y+b[1][i],0)]=-1;
	for(int i=1;i<=20;i++)
	{
		if(a[i][0]!=-1&&a[i-1][0]!=-1)a[i][0]=1;
		else a[i][0]=-1;
		if(a[0][i]!=-1&&a[0][i-1]!=-1)a[0][i]=1;
		else a[0][i]=-1;
	} 
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
		{
			if(a[i][j]!=-1)
			{
				if(a[i-1][j]!=-1)a[i][j]+=a[i-1][j];
				if(a[i][j-1]!=-1)a[i][j]+=a[i][j-1];
			}
		}
//	for(int i=0;i<=n;i++)
//	{
//		for(int j=0;j<=m;j++)
//			cout<<a[i][j]<<' ';
//		cout<<'\n';
//	}
	cout<<a[n][m];
	return 0;
}

回复

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

正在加载回复...