1022. Digital Library (30)
来源:互联网 发布:nginx static 配置 编辑:程序博客网 时间:2024/05/29 02:15
主要考虑散列表查找的应用。
#include <iostream>#include <cstdio>#include <vector>#include <unordered_map>#include <algorithm>using namespace std;vector<string> split(string str, string delimiter){vector<string> strs;size_t i = 0;while(true){auto pos = str.find(delimiter, i);strs.push_back(str.substr(i, pos-i));if(pos == string::npos) break;else i = pos+1;}return strs;}int main(){int n;scanf("%d", &n);cin.get();unordered_map<string, vector<string>> books[5];for(int i = 0; i < n; ++i){string id, title, author, words, publisher, year;getline(cin, id);getline(cin, title);getline(cin, author);getline(cin, words);getline(cin, publisher);getline(cin, year);if(books[0].find(title) == books[0].end()) books[0].insert({title, vector<string>()});books[0][title].push_back(id);if(books[1].find(author) == books[1].end()) books[1].insert({author, vector<string>()});books[1][author].push_back(id);auto strs = split(words, " ");for(auto& word : strs){if(books[2].find(word) == books[2].end()) books[2].insert({word, vector<string>()});books[2][word].push_back(id);}if(books[3].find(publisher) == books[3].end()) books[3].insert({publisher, vector<string>()});books[3][publisher].push_back(id);if(books[4].find(year) == books[4].end()) books[4].insert({year, vector<string>()});books[4][year].push_back(id);}int m;scanf("%d", &m); cin.get();for(int i = 0; i < m; ++i){int cmd;string query;getline(cin, query); cmd = query[0]-'0'-1;cout << query << endl; query = query.substr(3);auto iter = books[cmd].find(query);if(iter == books[cmd].end()) printf("Not Found\n");else{ sort(begin(iter->second), end(iter->second));for(auto& str : iter->second){cout << str << endl;}}}return 0;}
0 0
- 1022. Digital Library (30)
- 1022. Digital Library (30)
- 1022. Digital Library (30)
- 1022. Digital Library (30)
- 1022. Digital Library (30)
- 1022. Digital Library (30)
- 1022. Digital Library (30)
- 1022. Digital Library (30)
- 1022. Digital Library (30)
- 1022. Digital Library (30)
- 1022. Digital Library (30)
- 1022. Digital Library (30)
- 1022. Digital Library (30)
- 1022. Digital Library (30)
- 1022. Digital Library (30)
- 1022. Digital Library (30)
- 1022. Digital Library (30)
- 1022. Digital Library (30)
- Linux 之 awk 命令
- 设计模式-建造者模式
- 线程-消息回环处理机制
- BZOJ1693Asteroids
- 学术组织与机构
- 1022. Digital Library (30)
- ZOJ-3204-Connect them【6th浙江省赛】【最小生成树】
- STM32-GPIO—JTAG
- c++primer阅读笔记之数组与指针
- BZOJ 1178 APIO 2009 会议中心
- 《Android源码设计模式》读书笔记 (15) 第15章 模板方法模式
- iOS 警告收录及科学快速的消除方法
- 驱动事件对象
- ZOJ-3207-80ers' Memory【6th浙江省赛】【STL】