題目連結:
題目大意:
給定兩正整數 n 、 m (1 ≦ n 、m ≦ 1, 600),接著便給定 n × m 個 int 可容納的整數值。其為 n × m 的陣列。其為由上至下遞增、由左至右也遞增。
接著給定一正整數 q (1 ≦ q ≦ 100, 000),代表有 q 筆詢問。每筆詢問有一正整數 qi 。問 qi 是否在此 n × m 之矩陣之中。在的話,問在第幾列第幾行。
第一筆輸入:
2 4
1 2 3 4
10 12 20 100
3
1
10
30
第二筆輸入:
5 2
1 10
4 11
12 20
30 33
45 92
3
1
10
2
第一筆輸出:
yes [1, 1]
yes [2, 1]
no
第二筆輸出:
yes [1, 1]
yes [1, 2]
no
將這 n × m 個數字放進同一個一維陣列,並對其排列。(但是要保存每個數字本來在的行列數)
接著就只是對每一筆的詢問做二分搜尋即可。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。