lyk 快跑!(run)
time limit:5000ms memory limit:64mb
題目描述
lyk 陷進了乙個迷宮! 這個迷宮是網格圖形狀的。 lyk 一開始在(1,1)位置, 出口在(n,m)。
而且這個迷宮裡有很多怪獸,若第 a 行第 b 列有乙個怪獸,且此時 lyk 處於第 c 行 d 列,此
時這個怪獸對它的威脅程度為|a-c|+|b-d|。
lyk 想找到一條路徑,使得它能從(1,1)到達(n,m),且在途中對它威脅程度最小的怪獸的
威脅程度盡可能大。
當然若起點或者終點處有怪獸時,無論路徑長什麼樣,威脅程度最小的怪獸始終=0。
輸入格式(run.in)
第一行兩個數 n,m。
接下來 n 行,每行 m 個數,如果該數為 0,則表示該位置沒有怪獸,否則存在怪獸。
資料保證至少存在乙個怪獸。
輸入格式(run.out)
乙個數表示答案。
輸入樣例
3 40 1 1 0
0 0 0 0
1 1 1 0
輸出樣例
1資料範圍
對於 20%的資料 n=1。
對於 40%的資料 n<=2。
對於 60%的資料 n,m<=10。
對於 80%的資料 n,m<=100。
對於 90%的資料 n,m<=1000。
對於另外 10%的資料 n,m<=1000 且怪獸數量<=100。
1 #include2 #include3 #include4 #include5#define n 1010
6using
namespace
std;
7int a[n][n],b[n][n],n,m,num,qx[n*n],qy[n*n],vis[n][n];
8int ax[4]=;
9int ay[4]=;
10bool check(int
limit)
1128
}29 }//
寬搜檢查是否從起點到終點能行得通
30return
false;31
}32void
bfs()
3346}47
}48}49
intmain()
5060}61
if(a[1][1]||a[n][m])//
特判 62
66bfs();
67int l=0,r=n*n,ans=0;68
while(l<=r)
6976
else r=mid-1;77
}78 printf("%d"
,ans);
79return0;
80 }
思路:見↑↑↑↑↑↑↑↑
最小值中求最大,最大值中求最小,非常符合二分答案的特點(標誌)
濟南學習 Day 2 T3 pm
它 問題描述 n個人坐成一圈,其中第k個人拿著乙個球。每次每個人會以一定的概率向 左邊的人和右邊的人傳球。當所有人都拿到過球之後,最後乙個拿到球的人即為 勝者。求第n個人獲勝的概率。所有人按照編號逆時針坐成一圈 輸入格式 第一行乙個數t代表資料組數。對於每組資料,第一行兩個整數n,k如題意所述。接下...
濟南學習 Day 3 T3 pm
仙人掌 cactus time limit 1000ms memory limit 64mb 題目描述 lyk 在衝刺清華集訓 thusc 於是它開始研究仙人掌 它想來和你一起分享它最近 研究的結果。如果在乙個無向連通圖中任意一條邊至多屬於乙個簡單環 簡單環的定義為每個點至多 經過一次 且不存在自環...
濟南學習 Day 2 T2 pm
她 問題描述 給你l,r,s,m,求滿足l s x mod m r最小的正整數 x。輸入格式 第一行乙個數t代表資料組數。接下來一行每行四個數代表該組資料的l,r,s,m。輸出格式 對於每組資料,輸出一行代表答案。如果不存在解,輸出 1 樣例輸入 15 4 2 3 樣例輸出 2 樣例解釋 叫南小鳥。...