本題核心思想:長度×頻率很多人不知道為什麼是這個式子,兩片題解說的也不是很清楚,我來詳細解釋一下。
小學知識:百分率我們會忽略題目中的:
使用的頻率(萬分比,在0到9000之間)這是乙個萬分率,我們不難想,用長度×萬分率得到的就是第a
ia_i
ai段資訊的查詢時間。
為什麼呢?
通常,我們在生活中說「某物體長度使用的頻率就是人們檢索的時間」。
正好和這題對上號。
以上是分析,下面,讓我們來看如何實現。
設第a
ia_i
ai個資訊所檢索的時間為er(
extr
emer
atio
)er(extreme\ ratio)
er(ext
reme
rati
o)設第a
ia_i
ai個資訊的編號為num
(num
ber)
num(number)
num(nu
mber
) 從題意可以推出,這兩種量是相連的。
所以,我們可以用結構體實現。
結構體是多個資料的集合。
我們可以理解為關聯容器。
例如,人口普查時,每家每戶的資訊,用乙個結構體陣列表示。
依題意,一條資訊有兩種表達,且這兩種表達是相連的,均滿足結構體使用條件。
但是,我們發現了乙個棘手的問題:
這題要求平均檢索時間最短的方案,所以肯定要排序。
如何排序?
這裡只說快排,其他排序可以手推。
一樣排序,但cmp
cmpcm
p函式要這樣寫。注釋在**裡。
struct ans fn [
10001];
//結構體陣列fn
int cmp ( ans a , ans b )
然後,直接輸出即可。
#include
#include
#include
using
namespace std;
struct ans fn [
10001];
//結構體陣列fn
int cmp ( ans a , ans b )
intmain()
sort ( fn +
1, fn + n +
1, cmp )
;//排序
for( i =
1; i <= n ; i ++
)//輸出
cout << endl ;
return0;
}
題解 P2622 關燈問題II
題目 感覺大佬們的 在讀入上的處理比本蒟蒻優秀多了,於是,乙個afo蒟蒻弱弱地提出一下自己的看法 首先,對於 n 那麼小,肯定是狀壓啦 對於讀入,本蒟蒻開了兩個陣列來儲存每個按鈕的效果 open i 和 close i 分別表示在按下第 i 個按鈕後,它對於開著的開關和關閉的開關所造成的影響 那麼我...
線性表 順序儲存習題P18 1 1 1 4
1.1.從順序表中刪除具有最小值的元素 假設唯一 並由函式返回被刪除的元素的值,空出的位置由最後乙個元素填補,若順序表為空則顯示出錯資訊並退出執行 bool del min sqlist l,elemtype value l.data pos l.data l.length 1 空出的位置由最後乙個...
線性表 順序儲存習題P18 1 5 1 9
1.5.從順序表中刪除其值在給定值s與t之間,包含s和t,要求s l.length s t return false for i 0 i l.length i l.length k return true 1.6.從有序順序表中刪除所有其值重複的元素,使表中所有元素的值均不同 為有序順序表,所以重複...