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 找到包含這個查詢詞的檔案的資料結構。舉例 文件...