我从今年一月调到现在,从0pts到60pts。该开的 long long 也开了,依然60pts。求助!
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,m,p,q;
ll dp[50][50];
bool pd(int i,int j){
return (i-p)*(i-p)+(j-q)*(j-q)==5||(i==p&&j==q);
}
int main(){
cin>>n>>m>>p>>q;
for(int i=0;i<=n;++i) dp[i][0]=1;
for(int j=0;j<=m;++j) dp[0][j]=1;
for(int i=0;i<=n;++i){
for(int j=0;j<=m;++j){
if(pd(i,j)) dp[i][j]=0;
}
}
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
if(!pd(i,j)) dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
}
cout<<dp[n][m];
return 0;
}