7-3 垃圾分类 (20分)
据香港《南华早报》2019年7月15日文章,上海严格的垃圾分类新规令不少居民抓狂。这催生出大量帮助找出正确分类答案的App和小程序。目前仅微信上就至少有280种与垃圾处理有关的App,在苹果应用商店也达130种。支付宝表示,已有60多家独立App开发商申请为该平台提供类似服务。
本题就请你现场实现一个简单的垃圾分类小助手。
输入格式:
输入首先给出官方分类指南中每种物品的归属。在一行中给出一个正整数 N(≤105),即物品数量;随后 N 行,每行给出一个物品名称(长度不超过 10 的、由小写英文字母和下划线组成的字符串)和该物品所属的分类(1 代表干垃圾、2 代表湿垃圾、3 代表可回收物、4 代表有害垃圾)。题目保证所有物品名称无重复。
随后每行给出一个查询物品的名称(格式与指南物品名称相同)。最后一行给出结束符 #
,表示查询终止,这一行不需要查询。
输出格式:
对每个查询的物品,在一行中给出其所属分类:Gan laji
代表干垃圾;Shi laji
代表湿垃圾;Ke Hui Shou
代表可回收物;You Hai laji
代表有害垃圾。如果查询的物品不在指南中,则输出 ?
表示不知道。
输入样例:
4
bao_zhi 3
dian_chi 4
dan_ke 2
bei_ke 1
dan_ke
dian_chi
ren_zha
bao_zhi
bei_ke
#
输出样例:
Shi laji
You Hai laji
?
Ke Hui Shou
Gan laji
题意
思路1
代码1
#include <iostream>
#include <unordered_map>
using namespace std;
const int N = 10010;
string kind[4] = {"Gan laji", "Shi laji", "Ke Hui Shou", "You Hai laji"};
unordered_map<string, int> mp;int main()
{int n;scanf("%d", &n);char s[15];for(int i = 0; i < n; i++){int t;scanf("%s%d", &s, &t);string str(s);mp[str] = t - 1;}while(scanf("%s", &s)){string qu(s);if(qu == "#")break;if(mp.count(qu))printf("%s\n", kind[mp[qu]].c_str());elseprintf("?\n");}return 0;
}
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
const int N = 10010;
string kind[4] = {"Gan laji", "Shi laji", "Ke Hui Shou", "You Hai laji"};
unordered_map<string, int> mp;int main()
{ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);int n;cin >> n;for(int i = 0; i < n; i++){string str;int t;cin >> str >> t;mp[str] = t - 1;}string qu;while(cin >> qu && qu != "#"){if(mp.count(qu))cout << kind[mp[qu]] <<endl;elsecout << "?" << endl;}return 0;
}
可以通过但还是慢于第一种方法
7-3 垃圾分类 (20分)相关推荐
- 7-1 查找书籍(20 分)(程序设计天梯赛模拟练习题)
7-1 查找书籍(20 分) 给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价. 输入格式: 输入第一行给出正整数n(<10),随后给出n本书的信息.每本书 ...
- PTA—输出全排列 (20分) 递归回溯思想
PTA-输出全排列 (20分) 递归回溯思想 题目要求: 请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间. 输入格式: 输入给出 ...
- 2、求100以内的素数之和。(20分)
题目: /* 2.求100以内的素数之和.(20分) */ 代码: public class Two207 {public static void main(String[] args) {int s ...
- 1、输入四个整数,按照从小到大顺序输出。(20分)
题目: /* 1.输入四个整数,按照从小到大顺序输出.(20分) */ 代码: 注:题目说的是四个数的排序,我就直接写了个冒泡排序 public class One207 {public static ...
- /* * 编程题第五题(20分): 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“
题目: 编程题第五题(20分): 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ***************** 所谓" ...
- /* * 编程题第四题(20分): 用1元5角钱人名币兑换5分、2分和1分的硬币(每一种都要有)共一百枚,问共有几种兑换方案?并输出每种方案。 */
题目: /* 编程题第四题(20分): 用1元5角钱人名币兑换5分.2分和1分的硬币(每一种都要有)共一百枚,问共有几种兑换方案?并输出每种方案. */ 我使用java做的 public class ...
- /* * 编程第三题(20分) 打印所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。(例153=1*1*1+3*3*3+5*5*5) */
题目: /* 编程第三题(20分) 打印所有的水仙花数.所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身.(例153=111+333+555) */ 我是用java做的 public cla ...
- /* * 编程第二题(20分): 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第十次落地时,共经过多少米?第十次反弹多高? */
题目: /* * 编程第二题(20分): 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第十次落地时,共经过多少米?第十次反弹多高? */ 我是用java做的 public ...
- /* * 编程第一题(20分): 1+(1+2)+(1+2+3)+……+(1+2+3+……+98+99+100) */
题目: /* 编程第一题(20分): 1+(1+2)+(1+2+3)+--+(1+2+3+--+98+99+100) */ 我是用的java做的 class One {public static vo ...
最新文章
- java框架三层架构是_MVC框架模式和Javaweb经典三层架构
- Unity3D中如何计算场景中的三角面和顶点数
- java读取pdf_Java 读取PDF中的文本和图片的方法
- VTK:网格之HyperTreeGridSource
- leetcode 688. Knight Probability in Chessboard | 688. “马”在棋盘上的概率(dp,记忆化搜索)
- 关于压缩工具 7z(7-zip) 的选项 -x(排除文件)的解读
- filezilla 共享多个目录_filezilla设置中文,3步搞定filezilla中文设置
- oracle biee 11g客户端连接OCI 10g/11g数据源时报错
- docker-1 初识docker
- 浅谈数据结构之主席树(线段树进阶版)
- js一些平时会用到的
- 的table数据重复添加_Excel中的超级表Table详细介绍(一)
- C# combobox SelectedText值为空
- 马库斯再谈AlphaGo Zero不是从零开始,AGI可能需要这十大先天机制
- 深入Managed DirectX9(十五)
- Android高仿今日头条/QQ空间手势下拉关闭图片效果
- CentOS安装sox音频处理器
- 网络中的中间商(CDN)
- mysql 商品规格表_商品规格分析
- 简易爬虫---爬图片以及用到的主要知识