1022. Digital Library (30)

考察倒排索引

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<map>
#include<sstream>
using namespace std;

int main()
{
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		//build map
		map<string,std::vector<string>> queryMap[5];
		while(n--)
		{
			getchar();
			string id, title, author, wordList, publisher, year;
			getline(cin, id);
			getline(cin, title); getline(cin, author);
			getline(cin, wordList); 
			getline(cin, publisher); cin>>year;
			queryMap[0][title].push_back(id); queryMap[1][author].push_back(id);
			queryMap[3][publisher].push_back(id); queryMap[4][year].push_back(id);
			istringstream istr(wordList);
			while(!istr.eof())
			{
				string word;
				istr>>word;
				queryMap[2][word].push_back(id);
			}
		}
		//sort first
		for(int i = 0; i < 5; ++i)
		{
			map<string,std::vector<string>>::iterator it;
			for(it=queryMap[i].begin(); it!=queryMap[i].end(); it++)
				sort(it->second.begin(), it->second.end());
		}
		//query
		int m;
		scanf("%d",&m);
		while(m--)
		{
			int index; string q;
			scanf("%d: ", &index);
			getline(cin, q);
			printf("%d: ", index);
			cout<<q<<endl;
			index--;
			map<string,std::vector<string>>::iterator it;
			it = queryMap[index].find(q);
			if(it!=queryMap[index].end())
			{
				std::vector<string> result = queryMap[index][q];
				for(int i = 0; i < result.size(); ++i)
					cout<<result[i]<<endl;
			}
			else printf("Not Found\n");
			
		}
	}
	return 0;
}


 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
ACM Digital Library(ACM数字图书馆)是全球历史最悠久和最大的计算机教育、科研机构。它收录了美国计算机协会的各种电子期刊、会议录、快报等文献的全文信息,并提供出版物信息。此外,ACM Digital Library还提供了其他3000多家出版机构的计算机文献的文摘索引信息(The Guide)。ACM致力于发展信息技术教育、科研和应用,其出版物和会议记录被全球计算机领域的专业人士视为最具权威和前瞻性的领导者。ACM Digital Library广泛收录了多种ACM电子出版物,包括15年的期刊和杂志、ACM9年的会议记录以及超过25万页的全文资料。此外,你可以在The Guide to Computing Literature中查找计算机领域重要文献的书目信息。\[2\]\[3\] #### 引用[.reference_title] - *1* [如何免费下载ACM数字图书馆文献](https://blog.csdn.net/weixin_46136127/article/details/113838644)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [ACM Digital Library访问及完整联动Zotero](https://blog.csdn.net/weixin_45884316/article/details/127511739)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ACM数据库的检索应用](https://blog.csdn.net/smart819819/article/details/8201844)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI记忆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值