1022.Digital Library (30)...to be continued...
来源:互联网 发布:祖传秘方淘宝可以卖吗 编辑:程序博客网 时间:2024/06/06 04:23
1022.Digital Library (30)…to be continued…
pat-al-1022
2017-02-20
- 关于map的用法:如果是一一对应关系,直接令mp[index] = content就可以;如果是一对多,就要用到mp[index].insert
- getline的用法:getline(cin, input)。别忘了如果前一个输入是scanf,要读掉换行
- map和set的方法中都有find
- 判断一个查询内容是否存在可以用:if(mp.find(queryContent) == mp.end()),或者if(mp.count(queryContent) == 0),或者if(mp[queryContent].size() == 0)
/** * pat-al-1022 * 2017-02-20 * Cpp version * Author: fengLian_s */#include<stdio.h>#include<iostream>#include<map>#include<set>#include<string>using namespace std;map<string, set<int> > mpTitle, mpAuthor, mpKey, mpPub, mpYear;void query(map<string, set<int> >& mp, string& queryContent){ if(mp[queryContent].size() == 0) { printf("Not Found\n"); } else { for(set<int>::iterator it = mp[queryContent].begin();it != mp[queryContent].end();it++) { printf("%07d\n", *it); } }}int main(){ freopen("in.txt", "r", stdin); int n, m, id, type; string title, author, key, pub, year; scanf("%d", &n); for(int i = 0;i < n;i++) { scanf("%d\n", &id); getline(cin, title); //cout << "title = " << title << endl; mpTitle[title].insert(id); getline(cin, author); //cout << "author = " << author << endl; mpAuthor[author].insert(id); while(cin >> key) { char c = getchar(); mpKey[key].insert(id); //cout << "key = " << key << endl; if(c == '\n') break; } getline(cin, pub); //cout << "pub = " << pub << endl; mpPub[pub].insert(id); getline(cin, year); //cout << "year = " << year << endl; mpYear[year].insert(id); } scanf("%d", &m); string queryContent; for(int i = 0;i < m;i++) { scanf("%d: ", &type); getline(cin, queryContent); printf("%d: ", type); cout << queryContent << endl; if(type == 1) query(mpTitle, queryContent); else if(type == 2) query(mpAuthor, queryContent); else if(type == 3) query(mpKey, queryContent); else if(type == 4) query(mpPub, queryContent); else query(mpYear, queryContent); } return 0;}
-TBC-
0 0
- 1022.Digital Library (30)...to be continued...
- 1026.Table Tennis (30)...to be continued...
- 1049.Counting Ones (30)...to be continued...
- 1057.Stack (30)...to be continued...
- 1091.Acute Stroke (30)...to be continued...
- 1103.Integer Factorization (30)...to be continued...
- 1107.Social Clusters (30)...to be continued...
- 2004(to be continued)
- To be Continued
- to be continued
- 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)
- 归并排序原理及Java实现
- 事件驱动的HLog写入模型
- {小结}GDKOI2017 被翻盘记
- PHP+ffmpeg+nginx的配置实现视频转码
- 性能测试工具原理与架构
- 1022.Digital Library (30)...to be continued...
- spring cloud学习(六)Spring Cloud Config
- SVG
- 《机器学习》周志华 读书笔记(原创)
- 设置linux系统开机自动挂载外部磁盘阵列
- 1
- 使用AspectJ实现将写入FTP服务的数据转存到Mysql数据库的解决方案
- 2
- 在Listener(监听器)定时启动的TimerTask(定时任务)中使用Spring@Service注解的bean