HDU 1983 Kaitou Kid - The Phantom Thief (2)(DFS+BFS)

网友投稿 560 2022-10-21

HDU 1983 Kaitou Kid - The Phantom Thief (2)(DFS+BFS)

HDU 1983 Kaitou Kid - The Phantom Thief (2)(DFS+BFS)

Kaitou Kid - The Phantom Thief (2)

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1291    Accepted Submission(s): 463

Problem Description

破解字迷之后,你得知Kid将会在展览开始后T分钟内盗取至少一颗宝石,并离开展馆。整个展馆呈矩形分布,划分为N*M个区域,有唯一的入口和出口(不能从出口进入,同样不能从入口出去)。由某个区域可直接移动至相邻四个区域中的一个,且最快需要一分钟。假设Kid进入放有宝石的区域即可盗取宝石,无需耗时。问至少要封锁几个区域(可以封锁放有宝石的区域,但不能封锁入口和出口)才能保证Kid无法完成任务。

Input

输入的第一行有一个整数C,代表有C组测试数据。每组测试数据的第一行有三个整数N,M,T(2<=N,M<=8,T>0)。接下来N行M列为展馆布置图,其中包括: 'S':入口 'E':出口 'J':放有宝石的区域,至少出现一次 '.':空白区域 '#':墙

Output

对每组测试数据,输出至少要封锁的区域数。

Sample Input

25 5 5SJJJJ..##J.JJJJ.J...EJ...5 5 6SJJJJ..##J.JJJJ.J...EJ...

Sample Output

02

Author

LL

Source

​​2008杭电集训队选拔赛​​

Recommend

wangye   |   We have carefully selected several similar problems for

you:  ​​2102​​​ ​​1401​​​ ​​2717​​​ ​​2579​​​ ​​1044​​

题解:给你一个图,怪盗基德kid要从“S”开始偷宝石,然后在T分钟内从“E”逃出去,kid的任务是至少偷一颗就算完成了,并且规定在T分钟内逃出去。问你要封锁几块地方才能让基德任务失败。如果偷了逃不出去也算任务失败。

其实,最多封锁4块,就是把出口或入口给堵了。

dfs???bfs???

AC代码:

#include#include#includeusing namespace std;struct node{ int x,y,t,su; int s1[90],s2[90];};int n,m,sx,sy,ans,time;char map[10][10];int v[10][10][2];int yi[4][2]={{1,0},{0,1},{-1,0},{0,-1}};void dfs(int k){ queueq; node st,ed; int vis=-1,i,j; if (k>ans) return ; st.x=sx; st.y=sy; st.t=0; st.su=0; memset(v,0,sizeof(v)); v[sx][sy][0]=1; q.push(st); while (!q.empty()) { ed=q.front(); q.pop(); if (ed.t>time) continue; if (map[ed.x][ed.y]=='E'&&ed.su) { vis=ed.t;break;} st.t=ed.t+1; st.su=ed.su; for (i=0;i<4;i++) { st.x=ed.x+yi[i][0]; st.y=ed.y+yi[i][1]; if ( st.x>=0 && st.x=0 && st.yk) ans=k; return ; } for (i=1;i<=ed.t;i++) { char c=map[ed.s1[i]][ed.s2[i]]; if (c=='S'||c=='E') continue; map[ed.s1[i]][ed.s2[i]]='#'; dfs(k+1); map[ed.s1[i]][ed.s2[i]]=c; }}int main(){ int c,i,j; scanf("%d",&c); while (c--) { scanf("%d%d%d",&n,&m,&time); for(i=0;i

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:HDU 2553 N皇后问题 (回溯DFS)
下一篇:一个用于内存受限应用程序的快速数据序列化工具
相关文章

 发表评论

暂时没有评论,来抢沙发吧~