博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷1002 过河卒
阅读量:4683 次
发布时间:2019-06-09

本文共 2047 字,大约阅读时间需要 6 分钟。

洛谷1002 过河卒

本题地址:

题目描述

  棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。
  棋盘用坐标表示,A点(0, 0)、B点(n, m)(n, m为不超过20的整数),同样马的位置坐标是需要给出的。
  现在要求你计算出卒从A点能够到达B点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。

输入输出格式

输入格式:

一行四个数据,分别表示B点坐标和马的坐标。

输出格式:

一个数据,表示所有的路径条数。

输入输出样例

输入样例#1:

6 6 3 3

输出样例#1:

6

说明

结果可能很大!

题解:这题题意不明,最后调了半天,,,(控制点根本没说明白是什么意思啊)。。。

不过特别逗,我上来竟然写的是BFS爆搜!。。。。。无语了。。。

爆炸之后写了一发记忆化,发现我是从(0,0)开始搜的= =

完了窝的代码能力真的喂狗咯。。。

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #define PAU putchar(' ') 9 #define ENT putchar('\n')10 #define MSE(a,b) memset(a,b,sizeof(a))11 #define REN(x) for(ted*e=fch[x];e;e=e->nxt)12 #define TIL(x) for(int i=1;i<=x;i++)13 #define ALL(x) for(int j=1;j<=x;j++)14 using namespace std;15 const int maxn=20+10;16 const int dx[]={ 0,-1,0};17 const int dy[]={ 0,0,-1};18 const int cx[]={ 0,0,2,1,-1,-2,1,-1,2,-2};19 const int cy[]={ 0,0,1,2,-2,-1,-2,2,-1,1};20 bool vis[maxn][maxn];21 long long dp[maxn][maxn];22 long long ans=0;int n,m;23 long long dfs(int x,int y){24 long long&res=dp[x][y];if(x==1&&y==1)return res=1;if(vis[x][y])return 0;if(res!=-1)return res;25 long long tmp=0;TIL(2){ int tx=x+dx[i],ty=y+dy[i];26 if(tx&&ty)tmp+=dfs(tx,ty);27 }return res=tmp;28 }29 inline int read(){30 int x=0;bool sig=true;char ch=getchar();31 for(;!isdigit(ch);ch=getchar())if(ch=='-')sig=false;32 for(;isdigit(ch);ch=getchar())x=10*x+ch-'0';return sig?x:-x;33 }34 inline void write(long long x){35 if(x==0){putchar('0');return;}if(x<0)putchar('-'),x=-x;36 int len=0;static long long buf[20];while(x)buf[len++]=x%10,x/=10;37 for(int i=len-1;i>=0;i--)putchar(buf[i]+'0');return;38 }39 int x,y;40 int main(){41 n=read()+1;m=read()+1;x=read()+1;y=read()+1;42 memset(dp,-1,sizeof(dp));43 TIL(9){ int tx=x+cx[i],ty=y+cy[i];44 if(tx&&ty&&tx<=n&&ty<=m)vis[tx][ty]=true;45 }write(dfs(n,m));46 return 0;47 }

 

转载于:https://www.cnblogs.com/chxer/p/4749502.html

你可能感兴趣的文章
IE下的bug
查看>>
家庭记账本开发进度1
查看>>
安卓客户端 扫描二维码登陆
查看>>
以SEO的角度分析使用iframe框架所存在的优缺点
查看>>
MOSS 文档库操作类
查看>>
PHP - 接口 - 单一接口
查看>>
算法学习-哈希表
查看>>
揭秘webdriver实现原理
查看>>
技术网站汇总
查看>>
课后题:冲激函数习题讨论
查看>>
hdu1232 畅通工程 并查集的 应用
查看>>
JavaScript 数据类型检测总结
查看>>
克隆数组的几种方式?
查看>>
什么是XMLA-- XML for Analysis
查看>>
Sharepoint2013商务智能学习笔记之使用Current User Filter筛选Excel 数据(六)
查看>>
2012-11-13:延期通知书
查看>>
CodeForces - 367C Sereja and the Arrangement of Numbers
查看>>
js添加文件引用,可以智能感知
查看>>
大数据学习——VMware安装
查看>>
[BZOJ2125]最短路
查看>>