只有80分,求大佬。
查看原帖
只有80分,求大佬。
1559156
CXCgood楼主2024/12/7 14:56
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll m[25][25],dx,dy,mx,my;
void a(int q){
	m[mx][my]=q;
	m[mx-2][my-1]=q;
	m[mx-2][my+1]=q;
	m[mx+2][my-1]=q;
	m[mx+2][my+1]=q;
	m[mx-1][my+2]=q;
	m[mx-1][my-2]=q;
	m[mx+1][my-2]=q;
	m[mx+1][my+2]=q;
	if(mx==2)for(int i=my; i<=dy; i++)m[2][i]=q;
	if(my==2)for(int i=mx; i<=dx; i++)m[i][2]=q;
}
int main(){
	cin >> dx >> dy >> mx >> my;
	dx+=2;dy+=2;mx+=2;my+=2;
	for(int i=2;i<=dx;i++)m[i][2]=1;
	for(int i=2;i<=dy;i++)m[2][i]=1;
	a(-1);

	for(int i=3; i<=dx; i++){
		for(int j=3; j<=dy; j++){
			if(m[i][j]>-1){
				if(m[i-1][j]<0&&m[i][j-1]<0)m[i][j]=0;
				else if(m[i-1][j]<0)m[i][j]=m[i][j-1];
				else if(m[i][j-1]<0)m[i][j]=m[i-1][j];
				else m[i][j]=m[i-1][j]+m[i][j-1];
			}
		}
	}
	a(0);
	cout<<m[dx][dy];
	return 0;
}
2024/12/7 14:56
加载中...