POJ 2418 Hardwood Species(STL中map的应用)

题目地址:POJ 2418

通过这个题查了大量资料。。知道了很多以前不知道的东西。。。。

在代码中注释说明吧。

代码如下:

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <queue>
#include <map>
#include<algorithm>

using namespace std;
int main()
{
    map<string,int>mp;//声明一个map容器,是一种对象
    map<string,int>::iterator cnt;//声明一个map迭代器,是一种指针
    int sum=0;
    char s[40];
    while(gets(s))
    {
        sum++;
        mp[s]++;
    }
    for(cnt=mp.begin();cnt!=mp.end();cnt++)//系统默认排序是按从小到大的顺序,这句代码的意思是用迭代器(即指针0在map中从头到尾遍历
    {
        double x;
        x=cnt->second*100.0/sum;//second指迭代器的第二个元素,即int型的数字
        printf("%s %.4lf\n",cnt->first.c_str(),x);//first指迭代器的第一个元素,即字符串。
        //在迭代器中是string的形式存储,需要用.c_str()来转换成%s,printf不能输出string,必须要转换。
    }
    return 0;
}

POJ 2418 Hardwood Species(STL中map的应用)

时间: 2024-12-18 09:05:33

POJ 2418 Hardwood Species(STL中map的应用)的相关文章

POJ 2418 Hardwood Species stl真省代码啊

Hardwood Species Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 20811   Accepted: 8158 Description Hardwoods are the botanical group of trees that have broad leaves, produce a fruit or nut, and generally go dormant in the winter. Ameri

poj 2418 Hardwood Species (trie树)

poj   2418   Hardwood Species http://poj.org/problem?id=2418 trie树+dfs 题意: 给你多个单词,问每个单词出现的频率. 方法:通过字典树,将所有单词放入树中,通过dfs遍历(题目要求按ASSIC码顺序输出单词及其频率),dfs可满足 注意:单词中不一定只出现26个英文字母,ASSIC码表共有256个字符 1 #include <stdio.h> 2 #include <string.h> 3 #include &l

[字典树] poj 2418 Hardwood Species

题目链接: http://poj.org/problem?id=2418 Hardwood Species Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 17511   Accepted: 6949 Description Hardwoods are the botanical group of trees that have broad leaves, produce a fruit or nut, and gene

POJ 2418 Hardwood Species(字典树)

题目链接:POJ 2418 Hardwood Species [题意]给出一大串树的名字,可能有重复,然后按字典序输出名字和百分比. [思路]我已开始偷懒用了map来做,这道题给的时间是10s,用map的8s也还是水过了,真是神奇啊,后来还是写了一下字典树,700ms+就过了,效率提升显著啊.这里要注意的是建字典树的ChildSize是256,题目输入不只有字母,还有一些其它字符. 下面贴上代码,先是map的: 1 /* 2 ** POJ 2418 Hardwood Species 3 ** C

POJ 2418 Hardwood Species Trie解法

计算一个字符串数组中有多少个重复字符串出现. 如果直接使用map容器,那么这条题就很简单了,一下就AC了,因为map已经处理好一切了: 不过时间超过1532ms,有点慢. 如下: int main() { map<string, int> msi; int total = 0; char treeName[40]; while (gets(treeName)) { msi[treeName]++; total++; } for (map<string, int>::iterator

POJ 2418 Hardwood Species(字典树 || map运用)

题目链接:http://poj.org/problem?id=2418 Description Hardwoods are the botanical group of trees that have broad leaves, produce a fruit or nut, and generally go dormant in the winter. America's temperate climates produce forests with hundreds of hardwood

[ACM] POJ 2418 Hardwood Species (Trie树或map)

Hardwood Species Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 17986   Accepted: 7138 Description Hardwoods are the botanical group of trees that have broad leaves, produce a fruit or nut, and generally go dormant in the winter. Ameri

[ACM] POJ 2418 Hardwood Species (Trie树或者map)

Hardwood Species Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 17986   Accepted: 7138 Description Hardwoods are the botanical group of trees that have broad leaves, produce a fruit or nut, and generally go dormant in the winter. Ameri

poj 2418 Hardwood Species(二叉排序树)

Hardwood Species Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 19428 Accepted: 7658 http://poj.org/problem?id=2418 Description Hardwoods are the botanical group of trees that have broad leaves, produce a fruit or nut, and generally go d