题目链接: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【网格型】的更多相关文章

  1. BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛( dp )

    一道水 dp ...然后我一开始用 BFS ...结果 MLE 了... dp[ i ][ j ][ k ] 由它四个方向上的 k - 1 转移. -------------------------- ...

  2. Bzoj 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 动态规划

    1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1006  Solved: ...

  3. [bzoj 1616][Usaco2008 Mar]Cow Travelling游荡的奶牛

    题目描述 奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游走,试图找到整块草地中最美味的牧草.Farmer John在某个时刻看见 ...

  4. bzoj 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛【dp】

    写了个bfs发现MLE了... 设f[t][i][j]为在t时刻走到(i,j)的方案数,转移和bfs一样 #include<iostream> #include<cstdio> ...

  5. 【BZOJ】1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛(dp/-bfs)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1616 我觉得bfs是可过的,但是交bfs上去是wa? 然后没办法看dp,原来这bfs能和dp联系在一 ...

  6. BZOJ1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛

    1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 762  Solved:  ...

  7. [Usaco2008 Mar]Cow Travelling游荡的奶牛[简单DP]

    Description 奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游走,试图找到整块草地中最美味的牧草.Farmer John ...

  8. 【bzoj1616】[Usaco2008 Mar]Cow Travelling游荡的奶牛 bfs

    题目描述 奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游走,试图找到整块草地中最美味的牧草.Farmer John在某个时刻看见 ...

  9. [Usaco2008 Mar]Cow Travelling游荡的奶牛

    题目描述 奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游走,试图找到整块草地中最美味的牧草.Farmer John在某个时刻看见 ...

随机推荐

  1. axios 异步加载 导致 {{}} 中变量为 undefined 报错 的 解决方案

    情景:axios 异步加载数据,当返回数据为一个 数组 时,双花括号中 这样写 会报错 {{informationDetail[0].img}} 解决方案一:通过 v-if 进行判断 解决方案二:单独 ...

  2. vuex 深入理解

    参考自:https://mp.weixin.qq.com/s?src=11&timestamp=1528275978&ver=922&signature=ZeHPZ2ZrLir ...

  3. LeetCode 206 Reverse Linked List(反转链表)(Linked List)(四步将递归改写成迭代)(*)

    翻译 反转一个单链表. 原文 Reverse a singly linked list. 分析 我在草纸上以1,2,3,4为例.将这个链表的转换过程先用描绘了出来(当然了,自己画的肯定不如博客上面精致 ...

  4. hdu 2602 - Bone Collector(01背包)解题报告

    Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  5. ArcMap中使用ArcPy实现Geometry与WKT的相互转换

    在Web GIS迅猛发展的今天,使用浏览器来进行交互以其方便性.快捷性被广大用户所推崇,那么在传输格式方面,都已比較简单的JSON或者WKT来解决网络带宽带来的数据压力. 在ArcGIS10.2版本号 ...

  6. redis问题接囧办法及经验

    转自:https://my.oschina.net/freegeek/blog/324410 1.redis持久化,来自官方说明 如何选择使用哪种持久化方式? 一般来说, 如果想达到足以媲美 Post ...

  7. PowerBuilder -- 日期控件

    MonthCalendar

  8. 多媒体开之之rtp 时间戳和负载类型介绍

    (1)时间戳 (2)负载类型 (3)rtp 包头 (1)时间戳 有三个 一个实时间单位 timestamp_increse=(unsigned int)(90000.0 / framerate); / ...

  9. 再说WCF Data Contract KnownTypeAttribute

    WCF 中的序列化是用DataContractSerializer,所有被[DataContract]和[DataMemeber]标记的类和属性会被DataContractSerializer序列化. ...

  10. window 安装 skywalking

    1.下载安装包 官网下载需要的安装包: https://github.com/OpenSkywalking/skywalking/releases 分别下载skywalking-collector.z ...