温州网站建设推广开通网站需要多少钱
描述
 阔叶树是一种植物群,具有宽阔的叶子,结出果实或坚果,通常在冬天休眠。
 美国的温带气候造就了数百种阔叶树种的森林,这些树种具有某些生物特征。例如,虽然橡树、枫树和樱桃都是硬木树,但它们是不同的物种。所有硬木树种加起来占美国树木的40%。
 另一方面,软木,或针叶树,从拉丁语的意思是“圆锥轴承”,有针。可广泛使用的美国软木包括雪松、冷杉、铁杉、松树、红木、云杉和柏树。在家中,软木主要用作结构木材,如2x4s和2x6s,但装饰应用有限。
 利用卫星成像技术,自然资源部编制了一份特定日期每棵树的清单。您需要计算每个物种所代表的树木种群的总比例。
输入
 程序的输入包括卫星观测到的每棵树的物种列表;每行一棵树。物种名称不得超过30个字符。物种不超过10000种,树木不超过1000000棵。
 输出
 按字母顺序打印种群中所代表的每种物种的名称,后跟其所代表的种群百分比,精确到小数点后4位。
Sample Input
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
 Sample Output
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
 Hint
This problem has huge input, use scanf instead of cin to avoid time limit exceeded.
 Source
Waterloo Local 2002.01.26
思路
用映射统计频数。
AC代码
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <map>
#define AUTHOR "HEX9CF"
using namespace std;int main()
{map<string, int> M;string name;int cnt = 0;while (getline(cin, name)){M[name]++;cnt++;}for (map<string, int>::iterator it = M.begin(); it != M.end(); it++){cout << it->first;printf(" %.4lf\n", (double)it->second * 100. / (double)cnt);}return 0;
}
