60pts求助(玄关)
查看原帖
60pts求助(玄关)
797464
zfw100楼主2023/10/3 22:21

RT(别问我为什么被棕,发现了想申诉已经时间过了......)

#include<bits/stdc++.h>
using namespace std;
#define ll long long

int main(){
	ll b1,b2,ma1,ma2;ll dp[25][25]={10086,};
	for(ll i=0;i<25;i++){
		for(ll j=0;j<25;j++){
			dp[i][j]=10086;
		}
	}
	cin>>b1>>b2>>ma1>>ma2;
	ll dian1[10]={ma1,ma1-2,ma1-1,ma1+1,ma1+2,ma1-2,ma1-1,ma1+1,ma1+2},dian2[10]={ma2,ma2-1,ma2-2,ma2-2,ma2-1,ma2+1,ma2+2,ma2+2,ma2+1};//原点、左上竖、左上横、左下横、左下竖、右上竖、右上横、右下横、右下竖
	for(ll i=0;i<=b1;i++) dp[i][0]=1;
	for(ll i=0;i<=b2;i++) dp[0][i]=1;
	/*for(ll i=0;i<=b1;i++){
		for(ll j=0;j<=b2;j++){
			cout<<dp[i][j]<<" ";
		}
		cout<<endl;
	}*/
	dp[dian1[0]][dian2[0]]=0;dp[dian1[1]][dian2[1]]=0;dp[dian1[2]][dian2[2]]=0;dp[dian1[3]][dian2[3]]=0;dp[dian1[4]][dian2[4]]=0;dp[dian1[5]][dian2[5]]=0;dp[dian1[6]][dian2[6]]=0;dp[dian1[7]][dian2[7]]=0;dp[dian1[8]][dian2[8]]=0;
	for(ll i=1;i<=b1;i++){
		for(ll j=1;j<=b2;j++){
			if(dp[i][j]==10086){
				dp[i][j]=dp[i-1][j]+dp[i][j-1];
			}
		}
	}
//	for(ll i=0;i<=b1;i++){
//		for(ll j=0;j<=b2;j++){
//			cout<<dp[i][j]<<" ";
//		}
//		cout<<endl;
//	}
	cout<<dp[b1][b2]; 
	return 0;
}


2023/10/3 22:21
加载中...