Codevs1010 过河卒 【简单DP】【细心】
来源:互联网 发布:网络贷款需要什么资料 编辑:程序博客网 时间:2024/05/22 00:06
这题需要注意的点是
第一种初始化表格边界的方式是:
f[1][1] = 1;
循环内部是这样写的
if(i - 1 > 0) f[i][j] += f[i-1][j]; if(j - 1 > 0) f[i][j] += f[i][j-1];
第二种是
for(int i=0; i<=n; i++){ if(!b[i][0])f[i][0] = 1; else if(b[i][0]) break; } for(int i=0; i<=m; i++){ if(!b[0][i])f[0][i] = 1; else if(b[0][i]) break; }
初始化x轴和y轴 但是在初始化之后要去处理那些题目给出的不能走的点
如果提前把不能走的点设置好了,这里初始化又会把那些点设置回去
#include <cstdio>int f[1000][1000];int b[1000][1000];int main(){ int m,n; int c1,c2; scanf("%d%d%d%d",&n,&m,&c1,&c2); b[c1][c2]=1; b[c1-2][c2-1]=1; b[c1-1][c2-2]=1; b[c1+2][c2+1]=1; b[c1+1][c2+2]=1; b[c1-2][c2+1]=1; b[c1-1][c2+2]=1; b[c1+1][c2-2]=1; b[c1+2][c2-1]=1; for(int i=0; i<=n; i++){ if(!b[i][0])f[i][0] = 1; else if(b[i][0]) break; } for(int i=0; i<=m; i++){ if(!b[0][i])f[0][i] = 1; else if(b[0][i]) break; } for(int i=1; i<=n; i++){ for(int j=1; j<=m; j++){ f[i][j]=f[i][j-1]+f[i-1][j]; if(b[i][j]) f[i][j]=0; } } printf("%d",f[n][m]); return 0;}
阅读全文
0 0
- Codevs1010 过河卒 【简单DP】【细心】
- codevs1010 过河卒(棋盘dp)
- CodeVS1010 过河卒 解题报告【DP】
- HDOJ - 4504 简单DP...细心...
- codevs1010
- 过河卒(dp算法)
- 简单过河卒问题
- 过河(DP)
- [DP]NOIP2002/FJSDFZOJ 1081 过河卒
- ACM 78. [NOIP2002] 过河卒(dp)
- code(vs)1010 过河卒 (棋盘dp)
- HDU 4466 Triangle 第二次积分赛C题(思维+简单dp+细心)
- 又一个被坑的题 读题太不细心了 hdu 1260 简单dp
- 过河卒问题:简单动规
- 写程序简单,细心难
- 【贪心DP】过河问题
- 过河 贪心dp
- BOJ1293 小马过河 dp
- TableView之编辑模式
- Picasso的封装(一)
- java 下的 AES javax.crypto包 加密解密算法示例
- Android Studio Live Templates使用详解,提高敲代码的速度
- 行式数据库与列式数据区别
- Codevs1010 过河卒 【简单DP】【细心】
- Spring的自动装配
- python学习-day1-数据类型&数据结构
- Unity3D学习笔记(二):C#学习
- SGI STL(一)——初识STL
- Java集合Collection转List
- sleep与usleep
- Java反射机制详解
- 简单日历打印