日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

1022 Digital Library (30 分) 【难度: 中 / 知识点: 哈希表】

發(fā)布時(shí)間:2025/3/20 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1022 Digital Library (30 分) 【难度: 中 / 知识点: 哈希表】 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


https://pintia.cn/problem-sets/994805342720868352/problems/994805480801550336


解析: 將每一部分都用哈希表映射。映射的結(jié)果是一個(gè)集合set, set可以自動(dòng)排序,減少了我們排序的步驟。
需要注意的是第三點(diǎn)關(guān)鍵字查詢,我們的一本書(shū)有很多的關(guān)鍵字,故所有的關(guān)鍵字都要拆分映射。


#include<bits/stdc++.h> using namespace std; unordered_map<string,set<string>> hush[6]; int n,m; string id,s[6]; int main(void) {cin>>n;getline(cin,id);for(int i=0;i<n;i++){getline(cin,id);for(int j=1;j<=5;j++) getline(cin,s[j]);for(int j=1;j<=5;j++){if(j!=3) hush[j][s[j]].insert(id);else //是第三點(diǎn){stringstream l(s[j]);string temp;while(l>>temp) hush[j][temp].insert(id);//拆分關(guān)鍵字分別映射}}}cin>>m; string temp; getline(cin,temp);for(int i=0;i<m;i++){getline(cin,temp);cout<<temp<<endl;int op=temp[0]-'0';temp=temp.substr(3);auto t=hush[op][temp];if(t.size()) {for(auto i=t.begin();i!=t.end();i++) cout<<*i<<endl;}else cout<<"Not Found"<<endl;}return 0; }

總結(jié)

以上是生活随笔為你收集整理的1022 Digital Library (30 分) 【难度: 中 / 知识点: 哈希表】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。