随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类。请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比。

输入格式:

输入首先给出正整数N(≤105),随后N行,每行给出卫星观测到的一棵树的种类名称。种类名称由不超过30个英文字母和空格组成(大小写不区分)。

输出格式:

按字典序递增输出各种树的种类名称及其所占总数的百分比,其间以空格分隔,保留小数点后4位。

输入样例:

29
Red Alder
Ash
Aspen
Basswood
Ash
Beech
Yellow Birch
Ash
Cherry
Cottonwood
Ash
Cypress
Red Elm
Gum
Hackberry
White Oak
Hickory
Pecan
Hard Maple
White Oak
Soft Maple
Red Oak
Red Oak
White Oak
Poplan
Sassafras
Sycamore
Black Walnut
Willow

输出样例:

Ash 13.7931%
Aspen 3.4483%
Basswood 3.4483%
Beech 3.4483%
Black Walnut 3.4483%
Cherry 3.4483%
Cottonwood 3.4483%
Cypress 3.4483%
Gum 3.4483%
Hackberry 3.4483%
Hard Maple 3.4483%
Hickory 3.4483%
Pecan 3.4483%
Poplan 3.4483%
Red Alder 3.4483%
Red Elm 3.4483%
Red Oak 6.8966%
Sassafras 3.4483%
Soft Maple 3.4483%
Sycamore 3.4483%
White Oak 10.3448%
Willow 3.4483%
Yellow Birch 3.4483%

本题本质就是考察map的用法,下面给出map的解释

在定义数组的时候实际上是定义了一个下标到数据的映射
int array[]就是实现了int 到 int 的映射
有的时候需要把字符串映射到 int 该怎么操作呢
map<string,int> mp;
对于一个下标为字符的map容器,可以用下标直接访问
map<char,int> mp;
mp['c']就可以访问到c对应的 int
当然,更加符合人类逻辑的是使用迭代器来访问map

mp['m']=20;
mp['r']=30;
mp['a']=40;

for(map<char,int>::iterator it=mp.begin();it!=mp.end();it++)
{
  printf("%c %d\n",it->first,it->second)'
}

一个必须注意的现象是map会以键从小到大的顺序自动排序,输入的是m、r、a,但输出的顺序会变成a、m、r。

map里常用的函数
find(key) 返回键为key的映射的迭代器
mp['b']=2;
map<char,int>::iterator it=mp.find('b');
map的输出用的是it->first,it->second,和之前的vector输出值要用*it有些许区别

所以本题的代码就出来了

#include <bits/stdc++.h>using namespace std;map<string,int> s;int main()
{int n;cin >> n;getchar();int k = n;while (n -- ){string ss;getline(cin, ss);s[ss] ++;}for (auto &[x, v]: s){cout << x << ' ';printf("%.4lf%%\n", v * 1.0 / k * 100);}return 0;}

7-24 树种统计 (25 分)相关推荐

  1. 7-24 树种统计 (25 分)(详解)map做法 map真香啊!

    一:题目 7-24 树种统计 (25 分) 随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类.请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比. 输入格式: 输入首先给出 ...

  2. 7-217 树种统计 (25 分)

    7-217 树种统计 (25 分) 随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类.请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比. 输入格式: 输入首先给出正整数N ...

  3. 案例4-1.6 树种统计 (25 分)_18行代码AC

    立志用最少的代码做最高效的表达 随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类.请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比. 输入格式: 输入首先给出正整数N(≤ ...

  4. 树种统计 (25分)

    输入格式: 输入首先给出正整数N(≤10​5​​),随后N行,每行给出卫星观测到的一棵树的种类名称.种类名称由不超过30个英文字母和空格组成(大小写不区分). 输出格式: 按字典序递增输出各种树的种类 ...

  5. 7-19 树种统计 (10 分)

    7-19 树种统计 (10 分) 随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类.请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比. 输入格式: 输入首先给出正整数N( ...

  6. 7-2 树种统计 (20分)

    7-2 树种统计 (20分) 随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类.请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比. 输入格式: 输入首先给出正整数N(≤1 ...

  7. 树种统计 (20分)

    随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类.请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比. 输入格式: 输入首先给出正整数N(≤10 ​5 ​​ ),随后N行, ...

  8. 树种统计(25 分)

    树种统计(25 分) 关键字:map实现BST## 随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类.请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比. 输入格式: 输入 ...

  9. 7-4 统计Java程序中关键词的出现次数 (25 分)

    ** 7-4 统计Java程序中关键词的出现次数 (25 分) ** 编写程序统计一个输入的Java源码中关键字(区分大小写)出现的次数.说明如下: Java中共有53个关键字(自行百度) 从键盘输入 ...

最新文章

  1. 当支持向量机遇上神经网络......
  2. 在CSS中如何使用 when/else
  3. Exchange Server 2013之邮件存档配置
  4. 清华类脑计算成果再登Nature:张悠慧施路平团队出品,有望打破冯诺依曼瓶颈...
  5. linux shell概述,Linux学习 -- Shell基础 -- 概述
  6. 利用Python把四张图片按照顺序拼接起来
  7. php 静态页面模板类,dedetag.class.php 静态模板类
  8. LeetCode: Single Number I II
  9. CSDN博客利用HTML标签制作美观表格
  10. python 日志输出变量_Python日志输出
  11. 文本比较算法Ⅸ——Primal-Dual算法
  12. 通配符星号(*)和问号(?)的区别
  13. 图书管理系统-借书操作
  14. android gson解析json数据,Android中使用Gson解析JSON数据的两种方法
  15. Android7.0 PowerManagerService(4) Power按键流程
  16. cncert阅读报告
  17. KDL简介---KDL、PyKDL、pykdl_utils之间关系
  18. The page has expired due to inactivity Please refresh and try again
  19. 将一串数字转为大写人民币形式
  20. SQL server 2005简体中文版下载

热门文章

  1. struts2+spring+hibernate
  2. MQTT——EMQX学习笔记05——共享订阅、延迟发布
  3. ESP32读取甲醛传感器数据
  4. Intel C/C++、Fortran 编译器介绍
  5. shell 脚本处理用户输入
  6. (转)用InternetOpen下载小文件 vc c++
  7. 优化传统项目,提高web应用的吞吐量
  8. gz文件解压 linux,linux下.tar.gz和.gz文件解压详解
  9. WebRTC GCC 拥塞控制算法(TFB-GCC)
  10. nodejs实现QQ邮件发送