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在某个时刻看见 ...
随机推荐
- 关于rtsp转码rtmp播放的两种方式,客户端直接转,远程服务器转
需求 一.场景 用户多家门店有监控探头,设备是海康的和大华的.用户总部和门店不在一个网络下,并且总部要能实时调用查看门店监控,和门店回放画面.我们知道监控摄像机获取的视频是 rtsp 流的格式. 只能 ...
- ThinkPHP第一课 环境搭建
第一课 环境搭建 1.说明: ThinkPHP是一个开源的国产PHP框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的. 最早诞生于2006年初.原名FCS.2007年元旦正式更名为Think ...
- ZOJ - 3890 Wumpus(BFS基础题)
Wumpus Time Limit: 2 Seconds Memory Limit: 65536 KB One day Leon finds a very classic game call ...
- 自定义序列化4 (MFC调用C#的.dll)
CLR:CLR常用简写词语,CLR是公共语言运行时,Common Language Runtime)和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集),并保证应用和底层操作系 ...
- 3DES
3DES是继DESeasy被破解后的DES加密升级版,它属于对称加密. 可指定24位长度的密钥.在java API中也有事实上现,代码例如以下: /** * 3DES 的Java SDK API 实现 ...
- Windows Thin PC体验 & 语言包更改(win 7 included)
本作品由Man_华创作,采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可.基于http://www.cnblogs.com/manhua/上的作品创作. 简介: Window ...
- 如何禁止同IP站点查询和同IP站点查询的原理分析 Robots.txt屏蔽BINGBOT
很多站长工具中都有“同IP站点查询”.“IP反查域名”这种服务不少人都不知道是什么原理,其实这些服务几乎都是用BING(以前的LIVE)来实现 的,BING有个特别功能 BING抓取页面时会把站点的I ...
- 史上最浅显易懂的Git教程3 分支管理
假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了.如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险 ...
- 【转】Android中的Apk的加固(加壳)原理解析和实现
一.前言 今天又到周末了,憋了好久又要出博客了,今天来介绍一下Android中的如何对Apk进行加固的原理.现阶段.我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk, ...
- ubuntu 中文显示乱码问题 (转)
添加中文字符编码: $sudo vim /var/lib/locales/supported.d/local #添加下面的中文字符集 zh_CN.GBK GBK zh_CN.GB2312 GB2312 ...