zoukankan      html  css  js  c++  java
  • 1022_Digital_Library (30分)

    这里提供两种写法, 其实都是一样的,第一种比较快。

    #include <bits/stdc++.h>
    using namespace std;
    
    map<string,set<string> > mp[6];
    
    int main()
    {
    	//freopen("in.txt","r",stdin);
    	ios::sync_with_stdio(false);
    	int N;
    	cin>>N;
    	cin.get();
    	string ID,auth,title,puber,keywords,year;
    	for (int i=0;i<N;i++) {
    		getline(cin,ID);
    		getline(cin,title);
    		mp[1][title].insert(ID);
    		getline(cin,auth);
    		mp[2][auth].insert(ID);
    		getline(cin,keywords);
    		stringstream ss(keywords);
    		string key;
    		while (ss>>key) {
    			mp[3][key].insert(ID);
    		}
    		getline(cin,puber);
    		mp[4][puber].insert(ID);
    		getline(cin,year);
    		mp[5][year].insert(ID);
    		// cout<<ID<<title<<auth<<keywords<<puber<<year<<endl;
    	}
    	int M;
    	cin>>M;
    	int num;
    	string query;
    	for (int i=0;i<M;i++) {
    		cin>>num;
    		cin.get();
    		cin.get();
    		getline(cin,query);
    	
    		set<string> ans=mp[num][query];
    		cout<<num<<": "<<query<<endl;
    		if (ans.empty())
    			cout<<"Not Found"<<endl;
    		else 
    			for (set<string>::iterator it=ans.begin();it!=ans.end();it++) cout<<*it<<endl;
    	}
    	return 0;
    }
    

    第二种:

    #include <bits/stdc++.h>
    using namespace std;
    
    map<pair<int,string>,set<string> >mp;
    
    int main()
    {
    	// freopen("in.txt","r",stdin);
    	ios::sync_with_stdio(false);
    	int N;
    	cin>>N;
    	cin.get();
    	string title,author,key,puber,year,ID;	
    	for (int i=0;i<N;i++) {
    		getline(cin,ID);
    		getline(cin,title);
    		mp[make_pair(1,title)].insert(ID);
    		getline(cin,author);
    		mp[make_pair(2,author)].insert(ID);
    		getline(cin,key);
    		stringstream ss(key);
    		string tmp;
    		while (ss>>tmp) {
    			mp[make_pair(3,tmp)].insert(ID);
    		}
    		getline(cin,puber);
    		mp[make_pair(4,puber)].insert(ID);
    		getline(cin,year);
    		mp[make_pair(5,year)].insert(ID);
    		// cout<<ID<<" "<<title<<" "<<author<<" "<<key<<" "<<puber<<" "<<year<<endl;
    	}
    	int M;
    	cin>>M;
    	int n;
    	string query;
    	for (int i=0;i<M;i++) {
    		cin>>n;
    		cin.get();
    		cin.get();
    		getline(cin,query);
    		// cout<<n<<query<<endl;
    		set<string> ans=mp[make_pair(n,query)];
    		cout<<n<<": "<<query<<endl;
    		if (ans.empty()) {
    			cout<<"Not Found"<<endl;
    		}
            else {
                for (set<string>::iterator it=ans.begin();it!=ans.end();it++) {
    			    cout<<*it<<endl;
    		    }
            }
    		
    	}
    	return 0;
    }
    
  • 相关阅读:
    自适应Simpson积分
    斜率优化
    ORM的单表增删改查
    MTV模型—urls和view
    迭代器与生成器
    s7day2学习记录
    s7day1学习记录
    AI车牌识别涉及哪些技术?它是如何改变行业的?
    技术分享:人脸识别究竟是如何完成的?
    TSINGEE青犀视频行人检测景区测试时视频流切换本地背景音乐无法播放问题优化
  • 原文地址:https://www.cnblogs.com/xyqxyq/p/12328850.html
Copyright © 2011-2022 走看看