过河卒(NOIP2002)
题目链接:过河卒
直接模拟?会T掉60分。
所以我们可以采用递推,怎么想到的?
因为卒子只能向下或向右走,所以走到一个点的方法数,等于走到它上面点的方法数加上走到它左边点的方法数,这样就可以地推了。
给代码:
#include<bits/stdc++.h>
#ifdef WIN32
#define LL "%I64d"
#else
#define LL "%lld"
#endif
using namespace std;
int main(){
int n,m,a,b;
scanf("%d%d%d%d",&n,&m,&a,&b);
long long ans[n+1][m+1]; //1
memset(ans,0,sizeof(ans));
for(int i=0;i<m+1;i++){ //2
ans[0][i]=1;
if((0==a&&i==b)||(0==a-1&&(i==b-2||i==b+2))||((0==a-2)&&(i==b-1||i==b+1))||((0==a+1)&&(i==b-2||i==b+2))||((0==a+2)&&(i==b-1||i==b+1))){ //5
ans[0][i]=0;
break; //6
}
}
for(int i=1;i<n+1;i++){ //3
ans[i][0]=1;
if((i==a&&0==b)||(i==a-1&&(0==b-2||0==b+2))||((i==a-2)&&(0==b-1||0==b+1))||((i==a+1)&&(0==b-2||0==b+2))||((i==a+2)&&(0==b-1||0==b+1))){
ans[i][0]=0;
break;
}
}
for(int i=1;i<n+1;i++){
for(int j=1;j<m+1;j++){
ans[i][j]=ans[i-1][j]+ans[i][j-1];//4
if((i==a&&j==b)||(i==a-1&&(j==b-2||j==b+2))||((i==a-2)&&(j==b-1||j==b+1))||((i==a+1)&&(j==b-2||j==b+2))||((i==a+2)&&(j==b-1||j==b+1))){
ans[i][j]=0;
}
}
}
printf(LL,ans[n][m]);
return 0;
}
一共提六处:
1处:ans用于保存答案
2、3处:初始化第一行、第一列为1
4处:递推
5处:这一大串就是判断是否在控制点。
6处:如果在,就把这一点清零,如果初始化的时候,那就直接退出,因为后面的点是走不到的。我就是因为初始化为判断控制点而丢了一部分的分。
过河卒(NOIP2002)的更多相关文章
- 过河卒(Noip2002)(dp)
过河卒(Noip2002) 时间限制: 1 Sec 内存限制: 128 MB提交: 7 解决: 6[提交][状态][讨论版][命题人:quanxing] 题目描述 棋盘上A点有一个过河卒,需要走到 ...
- 【openjudge】【递推】例3.6 过河卒(Noip2002)
[题目描述] 棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上的某一点有一个对方的马(如C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点,如图3-1 ...
- 【9307】&【a303】过河卒(NOIP2002)
Time Limit: 10 second Memory Limit: 2 MB 问题描述 如图,A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右. 同时在棋盘上的任一点有一个对方 ...
- LFYZ-OJ ID: 1020 过河卒(NOIP2002)
过河卒 Proble Description 如图,A 点有一个过河卒,需要走到目标 B 点.卒行走规则:可以向下.或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃 ...
- noip2002 普及组 过河卒
题目描述 棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为"马拦过 ...
- NOIP2002 过河卒(DFS,DP)
https://www.luogu.org/problem/P1002 题目描述 如图,A 点有一个过河卒,需要走到目标 B 点.卒行走规则:可以向下.或者向右.同时在棋盘上的任一点有一个对方的马(如 ...
- AC日记——过河卒 洛谷 1002
题目描述 棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为“马拦过河卒”. ...
- NOIP 2002过河卒 Label:dp
题目描述 如图,A 点有一个过河卒,需要走到目标 B 点.卒行走规则:可以向下.或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点.例如 ...
- ACM题目————马拦过河卒
题目描述 棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为“马拦过河卒”. ...
随机推荐
- Ambertools15安装(详细)
这篇博文专门讲述 Ambertools15的安装方法,尽管Ambertools16版本已经正是发行了,但两者在安装方式上没有任何区别.比较偏爱Ambertools15的原因主要还是在容量方面(230M ...
- Cisco & H3C 交换机 DHCP 中继
个人理解:其实在核心交换上配置dhcp 中继也就是短短的几条命令,主要是注意细节,具体配置如下,希望能帮到大家: DHCP服务器IP:192.168.1.100 CISCO: 第一步:开启交换机的dh ...
- Python __import__() 函数
Python OS 文件/目录方法 Python 面向对象 Python __import__() 函数 Python 内置函数 描述 __import__() 函数用于动态加载类和函数 . 如 ...
- nth-child & nth-of-type区别
Do l have to 非做不可吗? He is my age. 他和我同岁. Here you are. 给你. No one knows . 没有人知道. 关于nth-child &&a ...
- [剑指Offer]25-合并两个排序链表
题目链接 https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337?tpId=13&tqId=11169&t ...
- Java_1简介
1.Java版本 JavaSE 基础标准版 J2ME 小型版 JavaEE 企业版(主要针对Javaweb程序进行开发) 2.Java特点 开源跨平台 跨平台的原因:Java必须先只能装 ...
- oracle数据库冷恢复
场 景:客户的服务器是在虚拟机上,结果虚拟机的服务器的硬盘坏掉了.硬盘换掉后,系统成功恢复出来,但是登录虚拟机后,数据库无法启动. 解决方案:通过冷恢复将数据库还原.在自己的电脑上搭建一个 ...
- BCHABC/BCHSV的矛盾所在
BCHABC: 将BCH以后发展智能合约: 消息方面: 吴忌寒:BCH分叉不可避免 未来可能继续分叉 近日,吴忌寒在北大光华管理学院的区块链培训课程上发表演讲表示,在这种言论自由地环境下,我认为分裂就 ...
- [z]重建索引
https://blog.csdn.net/funnyfu0101/article/details/52961485 所有执行的结果是脚本命令集合,可以用来创建索引: a)在plsql中使用execu ...
- 安装MySQL遇到的常见英文翻译
安装MySQL遇到的常见英文翻译: choose this configuration type to create the optimal server setup for this machine ...