hdu1208 dp
题意:给了一个 n * n 的方格图,要从图的左上角走到右下角 ,每次只能向右或者向下走,走的格数为当前格子上的数字,问共有多少中走法。
一开始我看到之后觉得这题完全可以用记忆化搜索来做,dfs 一遍就能找出所有解,这是因为刚刚不久才做过那道记忆化搜索的题目,我用 dp + dfs 敲了一遍之后作死提交,果断AC```怎么可能想想都知道```TLE了,恩其实题目底下就有提示说是遍历所有的路可能会超时,但是我英语不好 orz 。
但事实上即使没有这个提示我也本就应该先考虑普通 DP ,因为上次的记忆化搜索是因为那张图是可以往上下左右四个方向走的,所以普通的顺序 dp 就会面临更新完别的格子之后自己又要更新的情况,但是这次只有向右和向下,所以完全应该第一个想到顺序 dp 的,这是我自己想复杂的,当然也要归咎于我对 dp 和记忆化搜索理解的还不够到位吧。
那么顺序的 dp 其实就非常简单了,dp [ i ] [ j ] 表示走到第( i , j )格的走法数, dp [ 1 ] [ 1 ] 是开始位置,所以标记为 1 ,之后依次遍历每一个点,如果该点 dp 值不为 0 ,即该点可以被走到 ,那么就根据它格子上的数字优化能从这个格点到达的格子的 dp 值。当然,要注意的是当格点数字为 0 的时候就不要对自己进行更新了,因为这样若右下角格子的数字是 0 的话,它就会连续优化自己,与其特判还不如一开始就不操作。优化方式就是将能到达的格点的 dp 值加上当前点的 dp 值。
#include<stdio.h>
#include<string.h>
int a[][];
long long dp[][];
int xx[]={,};
int yy[]={,};
int main(){
int n;
while(scanf("%d",&n)!=EOF&&n!=-){
getchar();
memset(dp,,sizeof(dp));
int i,j;
dp[][]=;
for(i=;i<=n;i++){
for(j=;j<=n;j++){
char m;
scanf("%c",&m);
a[i][j]=m-'';
if(a[i][j]){
if(dp[i][j]){
int dx=i+a[i][j]*xx[],dy=j+a[i][j]*yy[];
if(dx<=n&&dy<=n)dp[dx][dy]+=dp[i][j];
dx=i+a[i][j]*xx[];dy=j+a[i][j]*yy[];
if(dx<=n&&dy<=n)dp[dx][dy]+=dp[i][j];
}
}
}
getchar();
}
/* for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
printf("%d ",dp[i][j]);
}
printf("\n");
}*/
printf("%I64d\n",dp[n][n]);
}
return ;
}
hdu1208 dp的更多相关文章
- HDU1208:Pascal's Travels(DP)
Problem Description An n x n game board is populated with integers, one nonnegative integer per squa ...
- BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]
1911: [Apio2010]特别行动队 Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 4142 Solved: 1964[Submit][Statu ...
- 2013 Asia Changsha Regional Contest---Josephina and RPG(DP)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4800 Problem Description A role-playing game (RPG and ...
- AEAI DP V3.7.0 发布,开源综合应用开发平台
1 升级说明 AEAI DP 3.7版本是AEAI DP一个里程碑版本,基于JDK1.7开发,在本版本中新增支持Rest服务开发机制(默认支持WebService服务开发机制),且支持WS服务.RS ...
- AEAI DP V3.6.0 升级说明,开源综合应用开发平台
AEAI DP综合应用开发平台是一款扩展开发工具,专门用于开发MIS类的Java Web应用,本次发版的AEAI DP_v3.6.0版本为AEAI DP _v3.5.0版本的升级版本,该产品现已开源并 ...
- BZOJ 1597: [Usaco2008 Mar]土地购买 [斜率优化DP]
1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4026 Solved: 1473[Submit] ...
- [斜率优化DP]【学习笔记】【更新中】
参考资料: 1.元旦集训的课件已经很好了 http://files.cnblogs.com/files/candy99/dp.pdf 2.http://www.cnblogs.com/MashiroS ...
- BZOJ 1010: [HNOI2008]玩具装箱toy [DP 斜率优化]
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 9812 Solved: 3978[Submit][St ...
- px、dp和sp,这些单位有什么区别?
DP 这个是最常用但也最难理解的尺寸单位.它与“像素密度”密切相关,所以 首先我们解释一下什么是像素密度.假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则我们可以计算 ...
随机推荐
- Spring Boot 文档
本节对 Spring Boot 的参考文档做了一个简单概述.本章节对全文的参考手册进行内容上的一些索引. 你可以参考本节,从头到尾依次阅读该文档,也可以跳过不感兴趣的内容. Spring Boot 参 ...
- Java 主要特性
Java 有下面的一些主要特性. 面向对象 在 Java 中,所有的都是对象.正式因为 Java 基于对象模型,所以 Java 更加容易进行扩展. Java语言提供类.接口和继承等面向对象的特性,为了 ...
- 27 网络通信协议 tcp udp subprocess
1.模块subprocess import subprocess cmd_str = input('请输入指令>>>') sub_obj = subprocess.Popen( cm ...
- python-day63--前端
一. 响应式介绍 - 响应式布局是什么? 同一个网页在不同的终端上呈现不同的布局等 - 响应式怎么实现的? 1. CSS3 media query 媒体查询 2. JS去控制网页的布局和样式等 - 缺 ...
- HDU-1272 小希的迷宫 (并查集、判断图是否为树)
Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就 ...
- 11g adg 环境搭建实施手册-0908
11g adg 环境搭建实施手册-0908 2017年8月30日 9:16 11g adg 环境搭建实施手册-0824 2017年8月24日 10:18 ####################### ...
- 自定义DateTimeInput(时间)控件的显示格式
DateTimeInput控件已有的几种格式可以在Format属性中选择: 但这几种格式仍无法满足我的要求怎么办? 例如想将显示格式定为类似这样的格式:2010-06-11 20:02:52,两步搞定 ...
- curl常用功能
<?php //创建一个新cURL资源 $ch = curl_init(); //******************************************************** ...
- 改变进程的优先级,nice,getpriority,setpriority
int getpriority(int which, int who);返回一组进程的优先级 参数which和who确定返回哪一组进程的优先级 The value which is one of PR ...
- js上传图片前预览方法(支持预览多个图片)
运用js实现上传图片前的预览(支持多张图片),实现的例子如下: 1.源码例子: 1)Js脚本页面 <!doctype html> <html> <head> < ...