BZOJ 1616 [Usaco2008 Mar]Cow Travelling游荡的奶牛:dp【网格型】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1616
题意:
有一个n*m的网格。
'.'表示平坦的草地,'*'表示挡路的树(不能走)。
有一只奶牛,第0秒时在(r1,c1),第t秒时在(r1,c2)。
它每一秒钟都会向上下左右任一方向走一格,不会停留不动。
问你在这t秒钟内,奶牛可能的移动路径数。
题解:
表示状态:
dp[i][j][k]:表示在第k秒,走到了位置(i,j)时的方案数。
找出答案:
ans = dp[r2][c2][t]
t秒时到达终点
如何转移:
dp[nx][ny][k+1] += dp[i][j][k]
(nx,ny)为(i,j)的上下左右四个位置。
边界条件:
dp[r1][c1][0] = 1
others = 0
初始时只有一种方案。
AC Code:
#include <iostream>
#include <stdio.h>
#include <string.h>
#define MAX_N 105
#define MAX_T 20 using namespace std; const int dx[]={-,,,};
const int dy[]={,,-,}; int n,m,t;
int r1,c1;
int r2,c2;
int dp[MAX_N][MAX_N][MAX_T];
char a[MAX_N][MAX_N]; void read()
{
cin>>n>>m>>t;
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
cin>>a[i][j];
}
}
cin>>r1>>c1>>r2>>c2;
} inline bool is_legal(int x,int y)
{
return x> && x<=n && y> && y<=m && a[x][y]!='*';
} void solve()
{
memset(dp,,sizeof(dp));
dp[r1][c1][]=;
for(int k=;k<t;k++)
{
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
for(int p=;p<;p++)
{
int x=i+dx[p];
int y=j+dy[p];
if(is_legal(x,y))
{
dp[x][y][k+]+=dp[i][j][k];
}
}
}
}
}
} void print()
{
cout<<dp[r2][c2][t]<<endl;
} int main()
{
read();
solve();
print();
}
BZOJ 1616 [Usaco2008 Mar]Cow Travelling游荡的奶牛:dp【网格型】的更多相关文章
- BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛( dp )
一道水 dp ...然后我一开始用 BFS ...结果 MLE 了... dp[ i ][ j ][ k ] 由它四个方向上的 k - 1 转移. -------------------------- ...
- Bzoj 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 动态规划
1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1006 Solved: ...
- [bzoj 1616][Usaco2008 Mar]Cow Travelling游荡的奶牛
题目描述 奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游走,试图找到整块草地中最美味的牧草.Farmer John在某个时刻看见 ...
- bzoj 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛【dp】
写了个bfs发现MLE了... 设f[t][i][j]为在t时刻走到(i,j)的方案数,转移和bfs一样 #include<iostream> #include<cstdio> ...
- 【BZOJ】1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛(dp/-bfs)
http://www.lydsy.com/JudgeOnline/problem.php?id=1616 我觉得bfs是可过的,但是交bfs上去是wa? 然后没办法看dp,原来这bfs能和dp联系在一 ...
- BZOJ1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛
1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 762 Solved: ...
- [Usaco2008 Mar]Cow Travelling游荡的奶牛[简单DP]
Description 奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游走,试图找到整块草地中最美味的牧草.Farmer John ...
- 【bzoj1616】[Usaco2008 Mar]Cow Travelling游荡的奶牛 bfs
题目描述 奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游走,试图找到整块草地中最美味的牧草.Farmer John在某个时刻看见 ...
- [Usaco2008 Mar]Cow Travelling游荡的奶牛
题目描述 奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游走,试图找到整块草地中最美味的牧草.Farmer John在某个时刻看见 ...
随机推荐
- useradd umask报错 root用su 切换到普通用户提示输入密码并报密码错误
添加新用户与以下文件有关联: /etc/default/useradd [root@localhost pam.d]# cat /etc/default/useradd # useradd defau ...
- Vue DOM事件
本文参考自:https://mp.weixin.qq.com/s?src=3×tamp=1527154113&ver=1&signature=tWGeTa86gyK* ...
- 【Python数据分析】IPython基础
一.配置启动IPython 打开cmd窗口,在dos界面下输入ipython,结果报错了!!! 出现这个问题是由于环境变量未配置(前提:已经安装了ipython),那么接下来配置环境变量 我的电脑→右 ...
- 2、C++ 的升级
1.内联函数 define 可以定义宏代码片段,但是,C++ 推荐使用内联函数替代宏代码片段. inline int f(int a, int b) { } 只需要在 函数定义(实现) ...
- PowerDesigner将PDM导出生成WORD文档(转)
今天的温习老知识,是如何将一个PD设计的PDM来导出WORD文档,这是一个非常实用的功能,可以在软件过程的数据库设计文档编写中节省N多时间, 那不废话了,我们就开始今天的讲解吧! 第一步,点击Repo ...
- 织梦在广告(myad)中使用css样式
使用单引号,以及只有style这一个属性
- Chrome自带恐龙小游戏的源码研究(四)
在上一篇<Chrome自带恐龙小游戏的源码研究(三)>中实现了让游戏昼夜交替,这一篇主要研究如何绘制障碍物. 障碍物有两种:仙人掌和翼龙.仙人掌有大小两种类型,可以同时并列多个:翼龙按高. ...
- Linux - 配置SSH免密通信 - “ssh-keygen”的基本用法
目录 1 什么是SSH 2 配置SSH免密登录 2.1 安装必需的软件 2.2 ssh-keygen创建公钥-私钥对 2.3 ssh-copy-id把A的公钥发送给B 2.4 在A服务器上免密登录B服 ...
- vsftpd 虚拟用户限定在虚拟用户目录
1.安装vsftpd yum -y install pam pam-devel db4 db4-tcl vsftpd 2.更名默认配置文件,以便恢复 cp /etc/vsftpd/vsftpd.con ...
- JQuery利用选择器定位动态id?
假如我们需要去定位一个动态生成的div,我们需要为它指定一个动态的id 例如: 前台使用EL进行迭代LIST生成div,为其添加动态的id,生成之后变成下面样式 <div id="tz ...