資料結構與演算法 倒排索引

2021-10-01 12:55:53 字數 1023 閱讀 3488

1:倒排索引

檢視提交統計提問

總時間限制: 1000ms 記憶體限制: 131072kb

描述給定一些文件,要求求出某些單詞的倒排表。

對於乙個單詞,它的倒排表的內容為出現這個單詞的文件編號。

輸入第一行包含乙個數n,1 <= n <= 1000,表示文件數。

接下來n行,每行第乙個數ci,表示第i個文件的單詞數。接下來跟著ci個用空格隔開的單詞,表示第i個文件包含的單詞。文件從1開始編號。1 <= ci <= 100。

接下來一行包含乙個數m,1 <= m <= 1000,表示查詢數。

接下來m行,每行包含乙個單詞,表示需要輸出倒排表的單詞。

每個單詞全部由小寫字母組成,長度不會超過256個字元,大多數不會超過10個字元。

輸出對於每乙個進行查詢的單詞,輸出它的倒排表,文件編號按從小到大排序。

如果倒排表為空,輸出"not found"。

樣例輸入

32 hello world

4 the world is great

2 great news

4hello

world

great

pku樣例輸出

11 2

2 3not found`

#include

#include

#include

using

namespace std;

int n, m;

string file[

1003][

103]

;string tmp;

int num[

1005];

intmain()

} cin >> m;

while

(m--)}

}if(!flag)

cout <<

"not found"

; cout << endl;

}return0;

}

資料結構與演算法分析 索引

算法和資料結構是電腦科學的核心內容。作為程式猿,程式設計是我們的實戰專案。然而,寫出程式還不夠。乙個程式在應對一些大型而複雜的情況時。會耗費大量的時間。我們能夠非常easy寫出乙個從檔案裡找到乙個詞的程式。比方逐詞掃瞄。看是否相符。但假設我們的檔案有幾十tb,並且要從檔案裡找到上百個詞,逐個掃瞄的辦...

演算法與資料結構之索引堆

前面的博文介紹了堆的實現堆的介紹,今天主要主要介紹索引堆,以及索引堆的優化。索引堆是對堆進行了優化。在堆中,構建堆 插入 刪除過程都需要大量的交換操作。在之前的實現中,進行交換操作是直接交換datas陣列中兩個元素。而索引堆交換的是這兩個元素的索引,而不是直接交換元素。主要有兩個好處 索引堆使用了乙...

正排索引與倒排索引

什麼是正排索引 forward index 由key查詢實體的過程,是正排索引.什麼是倒排索引 inverted index 由item查詢key的過程,是倒排索引。倒排索引可以理解為map item,list id 能夠由查詢詞快速 時間複雜度o 1 找到包含這個查詢詞的檔案的資料結構。舉例 文件...