博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
礼物(BFS)
阅读量:7199 次
发布时间:2019-06-29

本文共 1688 字,大约阅读时间需要 5 分钟。

礼物

时间限制: 1 Sec  内存限制: 64 MB

提交: 39  解决: 4
[][][]

题目描述

   给出一个n行m列的点阵,“.”表示可通行格子,“#”表示不可通行格子,“K”表示国王的初始位置,“Q”表示王后的位置,“G”表示该格子有一个礼 物。注意:国王、王后、礼物所在的格子可以认为是可通行格子。国王从开始位置出发,国王从当前格子可以走到上、下、左、右四个相邻格子,当然前提是可通行 格子。国王从当前格子走到相邻格子的时间是变化的,这取决于国王手头上收集到的礼物的数量,假如当前国王手头上有y个礼物,那么他从当前格子移动到相邻格 子的所用时间是y+l秒。一旦国王进入某个有礼物的格子,他可以选择取该格子的礼物,也可以选择不取该格子的礼物。取礼物这个动作可以认为是瞬间完成的, 不需要时间。国王想收集到尽量多的礼物送给王后,但是他到达王后所在的格子不能超过T秒,王后不想等太长时间。注意:国王在收集礼物的途中可能多次走到相 同的格子。

输入

  第1行:三个整数n、m、T。 1≤n,m≤50,1≤T≤109。

  接下来是n行m列的点阵,‘G’的数量不超过16。只有一个国王,一个王后。

输出

一个整数,国王在规定时间内,最多可以收集到多少个礼物送给王后?

样例输入

5 7 50#....G####G####K...Q####.####G..GG#

样例输出

4 【分析】威哥写的,表示并不懂,立个flag,日后再学,已经看晕了。
#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define mod 1000000007#define inf 0x3f3f3f3f#define pi acos(-1.0)using namespace std;typedef long long ll;const int N = (1<<16)+5;const int INF = 0x3f3f3f3f;char s[52][52];int n,m,T;struct Node { int x,y; Node(int a=0,int b=0) { x=a; y=b; }} st,ed;vector
g;int d[18][18],dis[51][51],f[N][16];int dx[4]= { 0,0,-1,1};int dy[4]= {-1,1,0,0};void bfs(int pos) { queue
q; memset(dis,INF,sizeof(dis)); dis[g[pos].x][g[pos].y]=0; q.push(g[pos]); while(!q.empty()) { Node u=q.front(); q.pop(); for(int i=0; i<4; ++i) { int x=u.x+dx[i],y=u.y+dy[i]; if(x<1||x>n||y<1||y>m||s[x][y]=='#')continue; if(dis[x][y]==INF) { dis[x][y]=dis[u.x][u.y]+1; q.push(Node(x,y)); } } } for(int i=0; i
=INF)continue; for(int k=0; k
=INF)continue; f[i|(1<
<
View Code

 

转载于:https://www.cnblogs.com/jianrenfang/p/5726244.html

你可能感兴趣的文章
做SEO,选择大于努力
查看>>
python web开发-flask调试模式
查看>>
3分钟看懂linux磁盘划分
查看>>
Linux-LAMP 默认页,虚拟主机
查看>>
Node.js 特点
查看>>
Linux-日志管理
查看>>
MySQL数据库系统
查看>>
Android Studio 提示帮助文档 一直显示:fetching documentation
查看>>
新 Terraform 提供商: F5 Networks, Nutanix, 腾讯云, Helm
查看>>
SpringBoot框架简介及搭建
查看>>
拯救 Java Code Style 强迫症
查看>>
PDF文档怎样在线合并?
查看>>
大侦探福老师——幽灵Crash谜踪案
查看>>
一个故事告诉你什么才是好的程序员
查看>>
python subprocess模块 监控子进程的2种方式 忙等待和立即返回同时设置子进程超时...
查看>>
Java 网络编程
查看>>
科略教育—《只有规则和制度,才能遏制人性的阴暗》
查看>>
IT兄弟连 JavaWeb教程 JSP语法
查看>>
C# DllImport的用法
查看>>
ASM 详解
查看>>