记录编号 523284 评测结果 AAAAAAATTA
题目名称 [NOIP 2002]过河卒 最终得分 80
用户昵称 Gravatarleon 是否通过 未通过
代码语言 C++ 运行时间 2.568 s
提交时间 2018-11-19 19:48:42 内存使用 3.29 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<iomanip>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
queue<int> qx;
queue<int> qy;
short int   tx,ty;
long long head=0,tail=1,cnt=0;
long long    xx[2]={0,1},yy[2]={1,0};
long long   m,n,mx,my;
long long   a[30][30];
void s(long long x,long long  y){
qx.push(x);
qy.push(y);
while(qx.size()>=1){
    for(int i=0;i<=1;i++){
       	tx=xx[i]+qx.front();
		ty=yy[i]+qy.front();
       	if(tx<=n&&ty<=m&&a[tx][ty]==0){
       	if(tx==n&&ty==m) cnt++;
       	else{
       	tail++;
       	qx.push(tx);
       	qy.push(ty);}
		   }
		   }

		   qx.pop();
	       qy.pop();
		   		 }	
        		}		
        				
int main(){
    freopen("pj024.in","r",stdin);
    freopen("pj024.out","w",stdout);
         
    cin>>n>>m>>mx>>my;
    for(int i=0;i<=n;i++)
    for(int o=0;o<=m;o++)
    a[i][o]=0;
    a[mx-1][my-2]=1;
    a[mx-2][my-1]=1;
    a[mx-1][my+2]=1;
    a[mx-2][my+1]=1;
    a[mx+1][my-2]=1;
    a[mx+2][my-1]=1;
    a[mx+1][my+2]=1;
    a[mx+2][my+1]=1;
    a[mx][my]=1;
    s(0,0);
    cout<<endl;
    cout<<cnt;
    return 0;
}