Luogu P1535 【游荡的奶牛】

搜索
不知道为什么没有人写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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/366828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ORM框架greenDao 2 (用于了解旧版本的使用方法,目前最新版本为3.2.2,使用注释的方式来生成)...

摘要&#xff1a; Android中对SQLite数据库使用&#xff0c;是一件非常频繁的事情。现今&#xff0c;也有非常多的SQLite处理的开源框架&#xff0c;其中最著名的greenDao&#xff0c;它以占用资源少&#xff0c;处理效率高等特点&#xff0c;成为优秀的ORM框架之一。那么对于g…

配置MySQL以进行ADF开发

大家好。 今天&#xff0c;我将向您展示如何为Oracle ADF开发配置MySQL数据库。 恕我直言&#xff0c;当您将ADF与其他数据库而不是Oracle DB一起使用时&#xff0c;您将无法使用Oracle ADF的全部功能&#xff0c;有时您会发现自己正在寻找解决方法&#xff0c;以实现某些行为…

linux 强行杀死进程,Linux如何查看进程、杀死进程、启动进程等常用命令

查进程杀进程使用kill命令结束进程&#xff1a;常用&#xff1a;Linux下还提供了一个killall命令&#xff0c;可以直接使用进程的名字而不是进程标识号&#xff0c;例如&#xff1a;进入到进程的执行文件所在的路径下&#xff0c;执行文件 ./文件名附&#xff1a;修改文件日期命…

React Native面试知识点

本文原创首发于公众号&#xff1a;ReactNative开发圈&#xff0c;转载需注明出处。 本文会不定期不断更新&#xff0c;想查看最新版本请移步至https://github.com/forrest23/react-native-interview 1.React Native相对于原生的ios和Android有哪些优势&#xff1f; 1.性能媲美…

KIE-WB / JBPM控制台Ng –配置

大家好&#xff0c;这是我上一篇文章中有关如何使用jBPM Console的后续文章 。 这篇文章的主要思想是描述为了在您自己的公司中使用它&#xff0c;您需要对jBPM Console NG进行一些最常见的配置。 但是在讨论技术细节之前&#xff0c;我们将介绍KIE Workbench&#xff08;KIE-W…

EasyUI常用控件禁用方法

来自&#xff1a;http://blog.csdn.net/jin_guang/article/details/36905387 特此感谢 1.validatebox可以用的用法:前两种适用于单个的validatebox; 第三种应用于整个form里面的输入框; <1>.$("#id").attr("readonly", true); ----- $("#id…

linux内核percpu变量声明,Linux kernel percpu变量解析

Linux 2.6 kernel 中的 percpu 变量是经常用到的东西&#xff0c;因为现在很多计算机都已经支持多处理器了&#xff0c;而且 kernel 默认都会被编译成 SMP 的&#xff0c;相对于原来多个处理器共享数据并进行处理的方式&#xff0c;用 percpu 变量在 SMP、NUMA 等架构下可以提高…

django组件 分页器

1 from django.shortcuts import render,HttpResponse2 3 # Create your views here.4 from app01.models import *5 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger6 7 def index(request):8 9 10 批量导入数据: 11 12 Booklist[] …

自己写一个H5项目CI系统

持续集成&#xff08;Continuous integration&#xff0c;简称CI)系统在软件自动化构建&#xff08;包括编译、发布、自动化测试&#xff09;方面有着重要的作用&#xff0c;在之前&#xff0c;前端项目简单&#xff0c;很多时候发布都只是一些简单的拷贝&#xff0c;而随着web…

25.QT-模型视图

模型视图设计模式的核心思想 使模型(数据)与视图(显示)相分离模型只需要对外提供标准接口存取数据,无需数据如何显示视图只需要自定义数据的显示方式,无需数据如何组织存储当数据发生改变时,会通过信号通知视图当用户与视图进行交互时,会通过信号向模型发送交互信息 在QT中提供…

休眠事实:多级访存

在多个级别上检索根实体及其子关联是很常见的。 在我们的示例中&#xff0c;我们需要加载一个包含其树&#xff0c;分支和叶子的森林&#xff0c;并且我们将尝试查看Hibernate对于三种集合类型的行为&#xff1a;集合&#xff0c;索引列表和包。 这是我们的类层次结构的样子&…

linux系统fuser命令,Linux系统使用Fuser命令的方法

fuser命令是一个非常聪明的unix实用程序&#xff0c;用于查找正在使用某个文件、目录或socket的进程。 它还提供有关拥有该进程的用户和访问类型的信息。。fuser工具显示了使用指定文件或文件系统的每个进程的进程ID(PID)。安装如果你的精简版运行fuser提示如下信息&#xff1a…

网络基础之 Nmap 命令

nmap......转载于:https://www.cnblogs.com/changha0/p/9898020.html

react-router 源码浅析

用 react-router 也用了比较久了&#xff0c;对他的内部工作方式却只是了解皮毛&#xff0c;而且大部分还是通过别人的博客。最近两周打算自己探究一下他的实现。 注意&#xff01;因为我只使用过 v3 版本的 react-router&#xff0c;因为对他的使用方式比较熟悉&#xff0c;所…

前5个有用的隐藏Eclipse功能

Eclipse是野兽。 仅凭其力量才能超越其神秘感的设备。 有人将其称为连续体跨功能器 。 其他人则称它为透湿器 。 是的&#xff0c;它是如此之大&#xff0c;需要花费数年才能掌握。 然后&#xff0c;您的经理出现并告诉您&#xff1a;我们正在使用NetBeans。 开玩笑。 除了Ada…

linux如何解除密码,如何在Linux下解除PDF文件的密码?

【51CTO.com快译】今天&#xff0c;我碰巧与一位朋友共享一个受密码保护的PDF文件。我知道该PDF文件的密码&#xff0c;但不想透露。相反&#xff0c;我只想解除密码&#xff0c;将文件发送给朋友。于是我开始在网上找一些简单的方法&#xff0c;好解除PDF文件的密码保护。上网…

C#中结构体定义并转换字节数组

ref: https://www.cnblogs.com/dafanjoy/p/7818126.html C#中结构体定义并转换字节数组 最近的项目在做socket通信报文解析的时候&#xff0c;用到了结构体与字节数组的转换&#xff1b;由于客户端采用C开发&#xff0c;服务端采用C#开发&#xff0c;所以双方必须保证各自定义结…

解析robots.txt

案例&#xff1a; http://www.taobao.com/robots.txt 学习&#xff1a; User-agent: * 这里的*代表的所有的搜索引擎种类&#xff0c;*是一个通配符Disallow: /admin/ 这里定义是禁止爬寻admin目录下面的目录Disallow: /require/ 这里定义是禁止爬寻require目录下面的目录Disal…

2018移动端页面适配-自适应最新方案直接写px--------通过gulp工作流搭建一体化的移动端开发环境

1.开始 在flexible的GitHub上面写着 由于viewport单位得到众多浏览器的兼容&#xff0c;lib-flexible这个过渡方案已经可以放弃使用&#xff0c;不管是现在的版本还是以前的版本&#xff0c;都存有一定的问题。建议大家开始使用viewport来替代此方案。vw的兼容方案可以参阅《如…

jclouds的命令行界面

序幕 我使用和为jclouds贡献了一年多的时间。 到目前为止&#xff0c;我已经在很多领域广泛使用了它&#xff0c;尤其是在Fuse生态系统中 。 它的强大之处在于它缺少一件事&#xff0c;该工具可用于管理jclouds也提供访问权限的任何云提供商。 类似于EC2命令之类的工具&#xf…