题目链接: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. shell脚本学习笔记 (正則表達式)

    正則表達式一般有三个部分组成,他们各自是:字符类,数量限定符,位置限定符. 规定一些特殊语法表示字符类.数 量限定符和位置关系,然后用这些特殊语法和普通字符一起表示一个模式,这就是正則表達式(Regu ...

  2. HttpWebRequest.Proxy属性

    HttpWebRequest.Proxy默认使用IE代理,可以设置“Internet选项-Internet属性-连接-局域网设置-代理服务器”.

  3. Time倒计时

    commitTimeDate = new Date("2016/11/9 10:02:40").getTime() + 24*60*60*1000;//截止时间 myDate = ...

  4. JAVA实现KNN分类

    转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/51064307 http://www.llwjy.com/blogdetail/f ...

  5. 安装WordPress

    安装php yum install php-fpm yum install php systemctl start php-fpm 启动php nginx 配置

  6. java sqlite配置和自定义函数

    资源 jetty Jetty Downloads地址 sqlite sqlite JDBC Driver 地址:bitbucket代码托管 和 Github代码托管 jetty配置sqlite 在je ...

  7. 如何使用CocoaPods安装使用及配置私有库以及管理依赖库 【原创】

    CocoaPods是什么 在iOS开发中势必会用到一些第三方依赖库,比如大家都熟悉的ASIHttpRequest.AFNetworking.JSONKit等.使用这些第三方类库能极大的方便项目的开发, ...

  8. python学习(十一)函数、作用域、参数

    定义和调用函数 在这里函数的定义和调用和一般的语句没什么不一样,感觉函数也是对象 #!/usr/bin/python def times(x, y):                # 定义函数    ...

  9. 开源监控系统Prometheus介绍

    前言 Prometheus是CNCF的一个开源项目,Google BorgMon监控系统的开源版本,是一个系统和服务的监控系统.周期性采集metrics指标,匹配规则和展示结果,以及触发某些条件的告警 ...

  10. 【BZOJ1336】[Balkan2002]Alien最小圆覆盖 随机增量法

    [BZOJ1336][Balkan2002]Alien最小圆覆盖 Description 给出N个点,让你画一个最小的包含所有点的圆. Input 先给出点的个数N,2<=N<=10000 ...