巫妖王的天災軍團終於捲土重來,血色十字軍組織了一支先鋒軍前往諾森德大陸對抗天災軍團,以及一切沾有亡靈氣息的生物。孤立於聯盟和部落的血色先鋒軍很快就遭到了天災軍團的重重包圍,現在他們將主力只好聚集了起來,以抵抗天災軍團的圍剿。可怕的是,他們之中有人感染上了亡靈瘟疫,如果不設法阻止瘟疫的擴散,很快就會遭到滅頂之災。大領主阿比迪斯已經開始調查瘟疫的源頭。原來是血色先鋒軍的內部出現了叛徒,這個叛徒已經投靠了天災軍團,想要將整個血色先鋒軍全部轉化為天災軍團!無需驚訝,你就是那個叛徒。在你的行蹤敗露之前,要盡快完成巫妖王交給你的任務。
軍團是乙個n行m列的矩陣,每個單元是乙個血色先鋒軍的成員。感染瘟疫的人,每過乙個小時,就會向四周擴散瘟疫,直到所有人全部感染上瘟疫。你已經掌握了感染源的位置,任務是算出血色先鋒軍的領主們感染瘟疫的時間,並且將它報告給巫妖王,以便對血色先鋒軍進行一輪有針對性的圍剿。
輸入格式:
第1行:四個整數n,m,a,b,表示軍團矩陣有n行m列。有a個感染源,b為血色敢死隊中領主的數量。
接下來a行:每行有兩個整數x,y,表示感染源在第x行第y列。
接下來b行:每行有兩個整數x,y,表示領主的位置在第x行第y列。
【資料規模】
1<=m,n<=500
1<=a,b<=m*n
輸出格式:
第1至b行:每行乙個整數,表示這個領主感染瘟疫的時間,輸出順序與輸入順序一致。如果某個人的位置在感染源,那麼他感染瘟疫的時間為0。
輸入樣例#1:
5 4 2 3輸出樣例#1:1 15 4
3 35 3
2 4
3如下圖,標記出了所有人感染瘟疫的時間以及感染源和領主的位置。13
發現年段布置的水題沒有做啊。。。於是花10分鐘水一下。。。
可是,由於沒有發現領主們跟感染源站在一起(還有這麼傻的?),對對對,我沒有1a
1 #include2 #include3 #include4 #include5using
namespace
std;
67 typedef pairpii;89
struct
node
13};
1415
const
int maxn=505;16
17int n,m,n1,n2,get=0;18
intsite[maxn][maxn],vis[maxn][maxn];
19int ans[maxn*maxn];
20int dx[4]=,dy[4]=;
21 queueque;
2223
void
init()
30for(int i=1,x,y;i<=n2;i++)35}
3637
void
bfs()51}
52}53}
54}5556
intmain()
luogu P1332 血色先鋒隊
巫妖王的天災軍團終於捲土重來,血色十字軍組織了一支先鋒軍前往諾森德大陸對抗天災軍團,以及一切沾有亡靈氣息的生物。孤立於聯盟和部落的血色先鋒軍很快就遭到了天災軍團的重重包圍,現在他們將主力只好聚集了起來,以抵抗天災軍團的圍剿。可怕的是,他們之中有人感染上了亡靈瘟疫,如果不設法阻止瘟疫的擴散,很快就會遭...
luogu P1332 血色先鋒隊
巫妖王的天災軍團終於捲土重來,血色十字軍組織了一支先鋒軍前往諾森德大陸對抗天災軍團,以及一切沾有亡靈氣息的生物。孤立於聯盟和部落的血色先鋒軍很快就遭到了天災軍團的重重包圍,現在他們將主力只好聚集了起來,以抵抗天災軍團的圍剿。可怕的是,他們之中有人感染上了亡靈瘟疫,如果不設法阻止瘟疫的擴散,很快就會遭...
P1332 血色先鋒隊
巫妖王的天災軍團終於捲土重來,血色十字軍組織了一支先鋒軍前往諾森德大陸對抗天災軍團,以及一切沾有亡靈氣息的生物。孤立於聯盟和部落的血色先鋒軍很快就遭到了天災軍團的重重包圍,現在他們將主力只好聚集了起來,以抵抗天災軍團的圍剿。可怕的是,他們之中有人感染上了亡靈瘟疫,如果不設法阻止瘟疫的擴散,很快就會遭...