搜索
不知道为什么没有人写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[110][110][20];
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};    //移动
string s[110];
int main()
{cin>>n>>m>>t;for(int i=1;i<=n;i++)cin>>s[i];cin>>r1>>c1>>r2>>c2;dp[r1][c1][0]=1;    //初始方案数为1q.push(node{r1,c1,0});while(!q.empty()){node u=q.front();q.pop();for(int i=0;i<4;i++){node th;th.x=u.x+dx[i];th.y=u.y+dy[i];th.s=u.s+1;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<1||th.x>n||th.y<1||th.y>m||s[th.x][th.y-1]=='*'||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 0;
}

转载于:https://www.cnblogs.com/ivanovcraft/p/9160658.html

Luogu P1535 【游荡的奶牛】相关推荐

  1. P1535 游荡的奶牛

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

  2. [洛谷]P1535 游荡的奶牛 (#搜索 -2.7)

    题目描述 Searching for the very best grass, the cows are travelling about the pasture which is represent ...

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

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

  4. F. [usaco 2009 dec]游荡的奶牛 总结

    F. [usaco 2009 dec]游荡的奶牛 总结 题目 F. [usaco 2009 dec]游荡的奶牛 时间限制:1s 空间限制:256MB 输入文件:sgraze-in 输出文件:sgraz ...

  5. [usaco 2009 dec]游荡的奶牛

    游荡的奶牛 题目描述 FJ 有 N (1 <= N <= 50,000)头牛,FJ的草地可以认为是一条直线. 每只牛只喜欢在某个特定的范围内吃草.第i头牛喜欢在区间(S_i, E_i)吃草 ...

  6. [USACO Mar08] 游荡的奶牛

    [USACO Mar08] 游荡的奶牛 时间限制:1 s 内存限制:128 MB 奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游 ...

  7. BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛【DP】

    1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec Memory Limit: 64 MB Description 奶牛们在被划分成N ...

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

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

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

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

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

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

最新文章

  1. SpringCloud + Consul服务注册中心 + gateway网关
  2. 皮一皮:到底谁才是渣王...
  3. 主机信息收集技术 -Nmap
  4. java中的泛型的使用与理解
  5. (八)python3 只需3小时带你轻松入门——List 与 dict 的常用操作
  6. Launch Instruments
  7. python open函数 创建变量文件_python的open函数怎么用
  8. [学习笔记] PHP回调函数的实现方法 [转]
  9. 帆软报表决策系统自定义登录界面 使用验证码登录 教程一
  10. 万能声卡驱动win10_主流最新驱动程序下载地址分享 和垃圾驱动下载软件说再见...
  11. 脉歌蓝牙耳机线评测_性能均衡的真无线降噪耳机 脉歌MT-70开箱评测
  12. 百度离线地图瓦片图制作
  13. 精选推文 | 基于三代转录组的基因注释踩坑经历以及GSAman使用
  14. Linux-hostname查看及修改
  15. 手把手教你使用wordPress+阿里云虚拟主机搭建个人博客
  16. SpringBoot-事务应用场景和隔离级别与传播行为
  17. C. Equalize(贪心)
  18. ACM-ICPC 2018 南京赛区网络预赛:E :AC Challenge题解
  19. Ogre渲染优化心得(三) -- 优化天龙八部的地形
  20. Nginx 入门学习

热门文章

  1. 美国计算机考研难度排名,2019USnews美国大学研究生cs专业百强排名一览
  2. AS Library 使用NDK 的一些坑 Unable to strip library (+深入了解部分gradle机制)
  3. 本机微信开发环境搭建
  4. VS2013 EF6连接MySQL步骤
  5. 鸿蒙宴中座次理解错的是,鸿门宴的座位安排用意是什么
  6. 程序员小灰漫画算法合集
  7. 不同 frame 之间调用 js 函数
  8. c语言的输出格式之正负号
  9. debian VBoxManage 命令行安装 win2003
  10. 软件测试工程师自我介绍范文_应届生软件测试面试自我介绍范文6篇