血色十字軍
description
巫妖王的天災軍團終於捲土重來,血色十字軍組織了一支先鋒軍前往諾森德大陸對抗天災軍團,以及一切沾有亡靈氣息的生物。孤立於聯盟和部落的血色先鋒軍很快就遭到了天災軍團的重重包圍。現在他們只好將主力聚集起來,以抵抗天災軍團的圍剿。可怕的是,他們之中有人感染上了亡靈瘟疫,如果不設法阻止瘟疫的擴散,很快就會遭到滅頂之災。大領主阿比迪斯已經開始調查瘟疫的源頭。原來是血色先鋒軍的內部出現了叛徒,這個叛徒已經投靠了天災軍團,想要將整個血色先鋒軍全部轉化為天災軍團!
無需驚訝,你就是那個叛徒。在你的行蹤敗露之前,要盡快完成巫妖王交給你的任務。
軍團是乙個n行m列的矩陣,每個單元是乙個血色先鋒軍的成員。感染瘟疫的人,每過乙個小時,就會向四周擴散瘟疫,直到所有人全部感染上瘟疫。你已經掌握了感染源的位置,任務是算出血色先鋒軍的領主們感染瘟疫的時間,並且將它報告給巫妖王,以便對血色先鋒軍進行一輪有針對性的圍剿。
input
第1行:四個整數n,m,a,b,表示軍團矩陣有n行m列。有a個感染源,b為血色先鋒軍中領主的數量(n,m<=500。a,b<=10000)。
接下來a行:每行有兩個整數x,y,表示感染源在第x行第y列。
接下來b行:每行有兩個整數x,y,表示領主的位置在第x行第y列。
output
第1至b行:每行乙個整數,表示這個領主感染瘟疫的時間,輸出順序與輸入順序一致。如果某個人的位置在感染源,那麼他感染瘟疫的時間為0。
sample input
5 4 2 31 15 4
3 35 3
2 4
sample output
313
明顯的寬搜題
#include#include#include#include#include#include#includeusing namespace std;
int dx[4]=;//增量陣列
int dy[4]=;
struct node//(x,y)座標及被感染的時間
;int map[505][505],ans[10005];//map[x][y]表示座標(x,y)被感染的時間
bool visit[505][505];//標記這個座標被搜尋過沒有
node source[10005],general[10005];
int n,m,a,b;
queueq;
void bfs()
} }}int main()
for(i=1;i<=b;i++)
bfs();
for(i=1;i<=a;i++)
for(i=1;i<=b;i++)
}
寬搜 A 按鈕
vasya 發現了乙個奇怪的裝置。在裝置的前面板上,有乙個紅色按鈕 乙個藍色按鈕和乙個顯示了某個正整數的螢幕。在按下紅色按鈕之後,裝置將顯示的數字乘以 2。在按下藍色按鈕之後,裝置將顯示的數字減去 1。如果在某時刻,數字不再是正數,則裝置終止執行。顯示螢幕可以顯示任意大的數字。初始狀態下,顯示螢幕顯...
寬搜 走出迷宮
描述 當你站在乙個迷宮裡的時候,往往會被錯綜複雜的道路弄得失去方向感,如果你能得到迷宮地圖,事情就會變得非常簡單。假設你已經得到了乙個n m的迷宮的圖紙,請你找出從起點到出口的最短路。輸入第一行是兩個整數n和m 1 n,m 100 表示迷宮的行數和列數。接下來n行,每行乙個長為m的字串,表示整個迷宮...
寬搜入門 魔板
在成功地發明了魔方之後,魯比克先生發明了它的二維版本,稱作魔板。這是一張有8個大小相同的格仔的魔板 1 2 3 4 8 7 6 5 我們知道魔板的每乙個方格都有一種顏色。這8種顏色用前8個正整數來表示。可以用顏色的序列來表示一種魔板狀態,規定從魔板的左上角開始,沿順時針方向依次取出整數,構成乙個顏色...