Initiate Luogu
This commit is contained in:
63
Luogu/P1002过河卒.cpp
Normal file
63
Luogu/P1002过河卒.cpp
Normal file
@@ -0,0 +1,63 @@
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
int main(){
|
||||
int n,m,max,may;
|
||||
cin>>n>>m>>may>>max;
|
||||
long long a[22][22];
|
||||
//reset to 0
|
||||
for(int i=0;i<22;i++){
|
||||
for(int j=0;j<22;j++){
|
||||
a[i][j]=0;
|
||||
}
|
||||
}
|
||||
for(int i = 0; i < 22; i++){
|
||||
a[0][i]=1;
|
||||
a[i][0]=1;
|
||||
}
|
||||
a[may][max]=-1;
|
||||
if((may-1)>=0&&(max-2)>=0) a[may-1][max-2]=-1;
|
||||
if((may-2)>=0&&(max-1)>=0) a[may-2][max-1]=-1;
|
||||
if((may-2)>=0&&(max+1)<=21) a[may-2][max+1]=-1;
|
||||
if((may-1)>=0&&(max+2)<=21) a[may-1][max+2]=-1;
|
||||
if((may+1)<=21&&(max+2)<=21) a[may+1][max+2]=-1;
|
||||
if((may+2)<=21&&(max+1)<=21) a[may+2][max+1]=-1;
|
||||
if((may+2)<=21&&(max-1)>=0) a[may+2][max-1]=-1;
|
||||
if((may+1)<=21&&(max-2)>=0) a[may+1][max-2]=-1;
|
||||
for(int i=0;i<22;i++){
|
||||
if(a[i][0]==-1){
|
||||
for(int j=i;j<22;j++){
|
||||
a[j][0]=0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
for(int i=0;i<22;i++){
|
||||
if(a[0][i]==-1){
|
||||
for(int j=i;j<22;j++){
|
||||
a[0][j]=0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
for(int i=1;i<22;i++){
|
||||
for(int j=1;j<22;j++){
|
||||
if(a[i][j]==-1)
|
||||
continue;
|
||||
if(a[i][j]!=-1&&a[i-1][j]!=-1&&a[i][j-1]!=-1)
|
||||
a[i][j]=a[i-1][j]+a[i][j-1];
|
||||
if(a[i][j]!=-1&&a[i-1][j]!=-1&&a[i][j-1]==-1)
|
||||
a[i][j]=a[i-1][j];
|
||||
if(a[i][j]!=-1&&a[i-1][j]==-1&&a[i][j-1]!=-1)
|
||||
a[i][j]=a[i][j-1];
|
||||
}
|
||||
}
|
||||
cout<<a[n][m]<<endl;
|
||||
/*
|
||||
for(int i=0;i<22;i++){
|
||||
for(int j=0;j<22;j++){
|
||||
cout<<a[i][j]<<" ";
|
||||
}
|
||||
cout<<endl;
|
||||
}//*/
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user