尋找寶藏
time limit: 1000 ms
memory limit: 32768 k
total submit: 166(73 users)
total accepted: 90(72 users)
rating:
special judge: no
description
在乙個地圖中,* 表示起點, $ 表示寶藏的藏匿地點, # 表示牆,+ 表示通道,問能否找到寶藏。
input
多組測試資料:
對於每組資料:第一行兩個整數n, m。 (n,m<=20)
接下來是乙個n x m 的地圖。
output
若能找到寶藏輸出「redhat v5!」 否則輸出「orz!」。每組輸出資料佔一行。
sample input
7 10
+++++++++*
+#########
++++++++++
#########+
++++++++++
+#########
8 8$#######
#++++++#
#++++++#
#++++++#
#++++++#
#++++++#
######+#
++++++*+
sample output
redhat v5!
orz!
#include#include#include#include#includeusing namespace std;
const int maxn = 25;
int vis[maxn][maxn];
char map[maxn][maxn];
int fx[4] = ;
int fy[4] = ;
struct point
;int n,m;
int bfs(int x1,int y1,int x2,int y2)
q.pop();
for(int i=0;i<4;i++)}}
return -1;
}int main()
{ int x1,x2,y1,y2;
while(~scanf("%d%d",&n,&m))
{for(int i=0;i
POJ1949 拓樸排序
拓樸排序 1 將入度為0的點入棧 2 while stack.empty node stack.top for each currentnode與node有邊 indegree currentnode 入度減一 poj1949在這裡儲存currentnode完成的時間,當然是貪心記錄最遲完成的時間 ...
POJ 1949(DAG最長路徑)
題目 所有任務合起來構成乙個dag,因為任務可以並行,所以從無前驅的節點到無後繼的節點的所有任務路徑中,最耗時的那一條就是所需要的總時間,因為這樣的搜尋中已經考慮了乙個任務所有可能的開始時間。include include include using namespace std int n,c 10...
POJ 1949 最小優先佇列
題意是有n行任務,給出完成每項任務所需要的時間長度,求出完成所有任務所需要的最短時間.每個任務都會有乙個約束條件,就是在完成這項任務之前必須完成所列出的其它任務.可以同時做多項任務.簡單來說就像煮飯炒菜問題一樣,可以一邊燒飯一邊炒菜.但炒菜之前必先洗菜.這道題我主要用了最小優先佇列,有點像dijkt...