zoukankan      html  css  js  c++  java
  • Codevs 1010 过河卒

    [TOC]

    ###题目 Codevs 洛谷 ###思路 $dfs$搜到一次目标点答案加一。 但在洛谷上$A$不了,qwq。 ###(Code)

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<algorithm>
    using namespace std;
    int n,m,mx,my;
    int z_x[3]={0,1,0},z_y[3]={0,0,1};
    int m_x[9]={0,1,1,2,2,-1,-1,-2,-2},m_y[9]={0,2,-2,1,-1,2,-2,1,-1};
    bool map[20][20];
    long long ans;
    inline int read(){
    	int x=0;bool f=0;char c=getchar();
    	while(c<'0'||c>'9'){if(c=='-')f=!f;c=getchar();}
    	while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
    	return f?-x:x;
    }
    bool bound(int x,int y){
    	if(x<0||x>n||y<0||y>m||map[x][y]) return true;
    	return false;
    }
    void work(){
    	for(int i=0;i<=8;++i){
    		if(bound(mx+m_x[i],my+m_y[i])) continue;
    		map[mx+m_x[i]][my+m_y[i]]=true;
    	}
    }
    void dfs(int x,int y){
    	for(int i=1;i<=2;++i){
    		int c=x+z_x[i],d=y+z_y[i];
    		if(bound(c,d)) continue;
    		map[c][d]=1;
    		if(c==n&&d==m) ans++;
    		else dfs(c,d);
    		map[c][d]=0;
    	}
    }
    
    int main(){
    	n=read(),m=read(),mx=read(),my=read();
    	work();
    	dfs(0,0);
    	printf("%lld
    ",ans);
    	return 0;
    }
    
  • 相关阅读:
    HDU 4644 BWT (KMP)
    常数的值类型问题
    HDU 1395 2^x mod n = 1 (欧拉函数)
    HDU 5384 Danganronpa(AC自动机)
    9.自己实现linux中的tree
    8.底层文件库
    7.标准文件库
    7.gcc的使用
    5.文件I/O
    4.vim操作
  • 原文地址:https://www.cnblogs.com/poi-bolg-poi/p/11130854.html
Copyright © 2011-2022 走看看