博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pat 甲级 1022. Digital Library (30)
阅读量:4977 次
发布时间:2019-06-12

本文共 3786 字,大约阅读时间需要 12 分钟。

1022. Digital Library (30)

时间限制
1000 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue

A Digital Library contains millions of books, stored according to their titles, authors, key words of their abstracts, publishers, and published years. Each book is assigned an unique 7-digit number as its ID. Given any query from a reader, you are supposed to output the resulting books, sorted in increasing order of their ID's.

Input Specification:

Each input file contains one test case. For each case, the first line contains a positive integer N (<=10000) which is the total number of books. Then N blocks follow, each contains the information of a book in 6 lines:

  • Line #1: the 7-digit ID number;
  • Line #2: the book title -- a string of no more than 80 characters;
  • Line #3: the author -- a string of no more than 80 characters;
  • Line #4: the key words -- each word is a string of no more than 10 characters without any white space, and the keywords are separated by exactly one space;
  • Line #5: the publisher -- a string of no more than 80 characters;
  • Line #6: the published year -- a 4-digit number which is in the range [1000, 3000].

It is assumed that each book belongs to one author only, and contains no more than 5 key words; there are no more than 1000 distinct key words in total; and there are no more than 1000 distinct publishers.

After the book information, there is a line containing a positive integer M (<=1000) which is the number of user's search queries. Then M lines follow, each in one of the formats shown below:

  • 1: a book title
  • 2: name of an author
  • 3: a key word
  • 4: name of a publisher
  • 5: a 4-digit number representing the year

Output Specification:

For each query, first print the original query in a line, then output the resulting book ID's in increasing order, each occupying a line. If no book is found, print "Not Found" instead.

Sample Input:
31111111The Testing BookYue Chentest code debug sort keywordsZUCS Print20113333333Another Testing BookYue Chentest code sort keywordsZUCS Print220122222222The Testing BookCYLLkeywords debug bookZUCS Print2201161: The Testing Book2: Yue Chen3: keywords4: ZUCS Print5: 20113: blablabla
Sample Output:
1: The Testing Book111111122222222: Yue Chen111111133333333: keywords1111111222222233333334: ZUCS Print11111115: 2011111111122222223: blablabla 题意:根据给定的信息,查找该信息出自哪本书 思路:这题主要是一个输入问题,信息查找只要字符串进行比较即可。 AC代码:
#define _CRT_SECURE_NO_DEPRECATE#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define INF 0x3f3f3f#define N_MAX 10000+5typedef long long ll;struct book{ string id, title,auther,publisher,publish_year; vector
key; bool operator < (const book&b) { return id < b.id; }};int n;vector
vec;int main() { while (scanf("%d",&n)!=EOF) { getchar(); for (int i = 0; i < n;i++) { book b; getline(cin, b.id); getline(cin, b.title); getline(cin, b.auther); do { string tmp; cin >> tmp; b.key.push_back(tmp); } while (getchar()!='\n'); getline(cin, b.publisher); getline(cin, b.publish_year); vec.push_back(b); } sort(vec.begin(),vec.end()); int m; cin >> m; while(m--) { vector
res; int cs; string s; scanf("%d: ", &cs); getline(cin,s); for (int i = 0; i < vec.size();i++) { if (s == vec[i].auther||s == vec[i].id||s==vec[i].publisher||s==vec[i].publish_year||s==vec[i].title) { res.push_back(vec[i]);continue; } else { for (int j = 0; j < vec[i].key.size(); j++) { if (s == vec[i].key[j]) { res.push_back(vec[i]); break; } } } } printf("%d: %s\n", cs, s.c_str()); if (res.size()) { for (int i = 0; i < res.size(); i++) { cout << res[i].id << endl; } } else puts("Not Found"); } } return 0;}

 

转载于:https://www.cnblogs.com/ZefengYao/p/8569454.html

你可能感兴趣的文章
room-views-用窗口颜色清除背景(Clear Background with Window Colour)选项
查看>>
OCR识别
查看>>
MySQL 性能调优的10个方法
查看>>
移动端单指拖 双值旋转缩放(改动版)
查看>>
经常使用排序算法时间复杂度和空间复杂度简析
查看>>
在 CentOS 6 上安装 PHP 5.4.30
查看>>
介绍 32 位和 64 位版本的 Microsoft Office 2010
查看>>
Python使用inspect查看代码参数
查看>>
jvisualvm远程监控Tomcat
查看>>
类就是类型,类型就是类
查看>>
修改Windows中文用户名为英文(更全面的方法)
查看>>
mysql主从复制
查看>>
jloi2017(shoi2017?)六省联考酱油记
查看>>
【bzoj1786】[Ahoi2008]Pair 配对 dp
查看>>
inner join, left join, right join, full outer join的区别
查看>>
边工作边刷题:70天一遍leetcode: day 61
查看>>
BZOJ1739: [Usaco2005 mar]Space Elevator 太空电梯
查看>>
mysql 密码忘记
查看>>
jsf taglib定义函数
查看>>
js apply和call区别
查看>>