題目連結(jié):
題目大意:
給定兩正整數(shù) n 、 m (1 ≦ n 、m ≦ 1, 600),接著便給定 n × m 個(gè) int 可容納的整數(shù)值。其為 n × m 的陣列。其為由上至下遞增、由左至右也遞增。
接著給定一正整數(shù) q (1 ≦ q ≦ 100, 000),代表有 q 筆詢問(wèn)。每筆詢問(wèn)有一正整數(shù) qi 。問(wèn) qi 是否在此 n × m 之矩陣之中。在的話,問(wèn)在第幾列第幾行。
第一筆輸入:
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 個(gè)數(shù)字放進(jìn)同一個(gè)一維陣列,並對(duì)其排列。(但是要保存每個(gè)數(shù)字本來(lái)在的行列數(shù))
接著就只是對(duì)每一筆的詢問(wèn)做二分搜尋即可。
此次分享到此為止,如有任何更加簡(jiǎn)潔的想法或是有說(shuō)明不清楚之地方,也煩請(qǐng)各位大大撥冗討論。