搜索
不知道为什么没有人写bfs
觉得挺像是标准个bfs的

状态
因为要统计次数,不能简单地跳过一个被经过的点
这样的话,状态量会爆炸
采用记忆化
设dp[i][j][k]表示在第k分钟到达点(i,j)的方案数
以地点+时间作为状态
避免同一状态被反复拓展
这样,状态量将减少至最多100*100*15

转移
这就比较显然了
对于将被拓展的状态,在计数时加上当前状态的方案数
如果这个状态曾被拓展,就不要别的操作了
否则,将这一状态入队,预备拓展其他状态

代码是这样的:

#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
struct node{
int x,y,s; //x、y表示坐标,s表示时间
};
queue<node>q;
int n,m,t,r1,c1,r2,c2,dp[][][];
int dx[]={,,,-};
int dy[]={,-,,}; //移动
string s[];
int main()
{
cin>>n>>m>>t;
for(int i=;i<=n;i++)
cin>>s[i];
cin>>r1>>c1>>r2>>c2;
dp[r1][c1][]=; //初始方案数为1
q.push(node{r1,c1,});
while(!q.empty())
{
node u=q.front();
q.pop();
for(int i=;i<;i++)
{
node th;
th.x=u.x+dx[i];
th.y=u.y+dy[i];
th.s=u.s+;
if(dp[th.x][th.y][th.s])
{
dp[th.x][th.y][th.s]+=dp[u.x][u.y][u.s];
continue; //当前状态曾被拓展
}
if(th.x<||th.x>n||th.y<||th.y>m||s[th.x][th.y-]=='*'||th.s>t)
continue; //越界或不能走或超时,跳过
dp[th.x][th.y][th.s]+=dp[u.x][u.y][u.s]; //计数
q.push(th);
}
}
cout<<dp[r2][c2][t]<<endl;
return ;
}

Luogu P1535 【游荡的奶牛】的更多相关文章

  1. P1535 游荡的奶牛

    P1535 游荡的奶牛 题目描述 Searching for the very best grass, the cows are travelling about the pasture which ...

  2. 洛谷 P1535 游荡的奶牛

    P1535 游荡的奶牛 题目描述 Searching for the very best grass, the cows are travelling about the pasture which ...

  3. COGS130. [USACO Mar08] 游荡的奶牛[DP]

    130. [USACO Mar08] 游荡的奶牛 ★☆   输入文件:ctravel.in   输出文件:ctravel.out   简单对比时间限制:1 s   内存限制:128 MB 奶牛们在被划 ...

  4. BZOJ_1616_[Usaco2008_Mar]_Cow_Travelling_游荡的奶牛_(DP)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1616 给出一张图,有些点不能走,给出起始点和结束点,以及时间,求在该时间到达结束点的方案数. ...

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

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

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

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

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

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

  8. [Luogu P1345] [USACO5.4]奶牛的电信Telecowmunication (最小割)

    题面 传送门:https://www.luogu.org/problemnew/show/P1345 ] Solution 这道题,需要一个小技巧了解决. 我相信很多像我这样接蒟蒻,看到这道题,不禁兴 ...

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

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

随机推荐

  1. bzoj2961&&bzoj4140 共点圆

    题目描述 在平面直角坐标系中,Wayne需要你完成n次操作,操作只有两种: 1.0 x y.表示在坐标系中加入一个以(x, y)为圆心且过原点的圆. 2.1 x y.表示询问点(x, y)是否在所有已 ...

  2. 微服务Kong(八)——代理参考

    Kong侦听四个端口的请求,默认情况是: 8000:此端口是Kong用来监听来自客户端的HTTP请求的,并将此请求转发到您的上游服务.这也是本教程中最主要用到的端口. 8443:此端口是Kong监听H ...

  3. POI往word模板中写入数据

    转: POI往word模板中写入数据 2018年03月24日 16:00:22 乄阿斗同學 阅读数:2977  版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn ...

  4. Qt 查找功能

    版权声明 该文章原创于Qter开源社区(www.qter.org),作者yafeilinux,转载请注明出处!     导语 这一篇我们来加上查找菜单的功能.因为要涉及Qt Creator的很多实用功 ...

  5. Nginx反向代理websocket配置实例

    最近有一个需求,就是需要使用 nginx 反向代理 websocket,经过查找一番资料,目前已经测试通过,本文只做一个记录 复制代码 代码如下: 注: 看官方文档说 Nginx 在 1.3 以后的版 ...

  6. Java操作Kafka执行不成功的解决方法,Kafka Broker Advertised.Listeners属性的设置

    创建Spring Boot项目继承Kafka,向Kafka发送消息始终不成功.具体项目配置如下: <?xml version="1.0" encoding="UTF ...

  7. 终于把5GB的Cygwin安装完成了

    From:http://www.cnblogs.com/killerlegend/p/3904478.html Author:KillerLegend Date:2014.8.11 首先,只想说一句, ...

  8. PHP基础知识之————匿名函数(Anonymous functions)

    匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数.最经常用作回调函数(callback)参数的值.当然,也有其它应用的情况. ...

  9. jmeter上传图片附件-小插曲

    背景 最近,接到新项目的接口测试,发现该接口是需要上传图片,开始折腾了好久没有搞定,最后才发现st和sid,并不是作为请求实体,而是url的一部分,好吧,是我没有仔细 请求参数 { "con ...

  10. angularJS 控制输入的百分数在0%-100%之间

    想了老半天了,记录一下 app.directive("percentageCheck", function () { return { restrict: 'A', require ...