1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛

Time Limit: 5 Sec Memory Limit: 64 MB

Description

奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游走,试图找到整块草地中最美味的牧草。Farmer John在某个时刻看见贝茜在位置 (R1, C1),恰好T (0 < T <= 15)秒后,FJ又在位置(R2, C2)与贝茜撞了正着。 FJ并不知道在这T秒内贝茜是否曾经到过(R2, C2),他能确定的只是,现在贝茜在那里。 设S为奶牛在T秒内从(R1, C1)走到(R2, C2)所能选择的路径总数,FJ希望有一个程序来帮他计算这个值。每一秒内,奶牛会水平或垂直地移动1单位距离(奶牛总是在移动,不会在某秒内停在它上一秒所在的点)。草地上的某些地方有树,自然,奶牛不能走到树所在的位置,也不会走出草地。 现在你拿到了一张整块草地的地形图,其中’.’表示平坦的草地,’*’表示挡路的树。你的任务是计算出,一头在T秒内从(R1, C1)移动到(R2, C2)的奶牛可能经过的路径有哪些。

Input

  • 第1行: 3个用空格隔开的整数:N,M,T
  • 第2..N+1行: 第i+1行为M个连续的字符,描述了草地第i行各点的情况,保证 字符是’.’和’‘中的一个 第N+2行: 4个用空格隔开的整数:R1,C1,R2,以及C2

Output

  • 第1行: 输出S,含义如题中所述

Sample Input

4 5 6
…*.
…*.
…..
…..
1 3 1 5
输入说明:
草地被划分成4行5列,奶牛在6秒内从第1行第3列走到了第1行第5列。

Sample Output

1
奶牛在6秒内从(1,3)走到(1,5)的方法只有一种(绕过她面前的树)。

题解

这题就是一个DP,记一个t就可以了。

代码如下

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int flg[4][2]={{1,0},{0,1},{-1,0},{0,-1}};
int n,m,t,X1,X2,Y1,Y2,f[105][105][15];
char ch[105][105],Now[105];
bool check(int x,int y){if(x<1||x>n||y<1||y>m) return 0;return 1;
}
int main(){#ifndef ONLINE_JUDGEfreopen("prob.in","r",stdin);freopen("prob.out","w",stdout);#endifscanf("%d%d%d",&n,&m,&t);gets(Now);memset(ch,'*',sizeof(ch));for(int i=1;i<=n;i++){gets(Now+1);for(int j=1;j<=m;j++) ch[i][j]=Now[j];}scanf("%d%d%d%d",&X1,&Y1,&X2,&Y2);f[X1][Y1][0]=1;for(int tim=1;tim<=t;tim++){for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if(ch[i][j]=='.') f[i][j][tim]=f[i-1][j][tim-1]+f[i][j-1][tim-1]+f[i+1][j][tim-1]+f[i][j+1][tim-1];else f[i][j][tim]=0;
//      for(int i=1;i<=n;i++)
//      for(int j=1;j<=m;j++) printf(j==m?"%d\n":"%d ",f[i][j][tim]);
//      printf("\n");}printf("%d\n",f[X2][Y2][t]);return 0;
}

BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛【DP】相关推荐

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

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

  2. BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 bfs

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

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

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1616 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Tim ...

  4. BZOJ1616[Usaco2008 Mar]Cow Travelling游荡的奶牛 dp

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

  5. bzoj1616[Usaco2008 Mar]Cow Travelling游荡的奶牛*

    bzoj1616[Usaco2008 Mar]Cow Travelling游荡的奶牛 题意: n行m列的草地上有一些位置有障碍物.第0时刻奶牛在(r1,c1),第t时刻奶牛在(r2,c2)(注意这里都 ...

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

    题目传送门 题解: 水题一道 bfs水过 代码直接抄黄学长的 #include<iostream> #include<cstdio> using namespace std; ...

  7. bzoj1616 [Usaco2008 Mar]Cow Travelling游荡的奶牛 [BFS]

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

  8. [BZOJ1616][Usaco2008 Mar]Cow Travelling游荡的奶牛(dfs||dp)

    题目描述 传送门 题解 看题了之后算了算,步数只有15步,似乎加了这个剪枝之后状态很少啊= =于是直接开始码bfs.码出来了之后发现对拍大数据老是出错,而且把剪枝加的越少数越小!原来我忽略了一个非常重 ...

  9. bzoj 1617: [Usaco2008 Mar]River Crossing渡河问题(DP)

    1617: [Usaco2008 Mar]River Crossing渡河问题 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1077  Solved: ...

最新文章

  1. 【FFmpeg】AVPacket的使用详解
  2. java读取服务器图片大小,SpringMVC中MultipartFile上传获取图片的宽度和高度详解
  3. 面向对象三大特征——继承
  4. RT/Metro商店应用如何如何获取图片的宽高
  5. 编译问题收集、汇总与积累
  6. 宗宁:全面解析微博财报数据爆发下的平台机会
  7. WebService入门Demo
  8. 看完Andoird9.0 Pie的隐藏特性,我买了SSL证书
  9. linux多线程学习设置线程调度权限
  10. android新建多个java,Java-如何在Android的警报对话框中添加多项选...
  11. QQ 小程序来了,怎么做?
  12. logback日志框架的简单使用
  13. python '/'与'//'学习
  14. matlab闭合导线代码,【求助】闭合导线简易平差Matlab代码需要大神帮忙
  15. Office | Word中插入参考文献
  16. 华为笔记本没有HOME键和END键
  17. Windows桌面任务栏应用图标变白怎么办?
  18. Java设计模式面试专题
  19. csv导出文件名乱码解决
  20. Linux无线网卡驱动更新

热门文章

  1. 计算机基础——5.2 图像与图形
  2. 想学linux需要的电脑配置相关
  3. android pay 教程,移动支付框架-AndroidPay
  4. 安装时提示用户在命令行上发出了EULAS_AGREED=1,表示不接受许可协议
  5. html5 手机uc浏览器 复制链接,删除手机UC浏览器强制插入关键词链接的方法
  6. 程序员的算法趣题Q68: 异性相邻的座位安排(1)
  7. MongoDB 条件查询--比较操作
  8. 1008. 前序遍历构造二叉搜索树
  9. 2020-5-22 吴恩达-改善深层NN-w1 深度学习的实用层面(1.7 理解 Dropout--压缩权重/分层设置keep-prob)
  10. 如何写一个魔方二维动态还原MATLAB仿真程序