zoukankan      html  css  js  c++  java
  • 洛谷 UVA10226 Hardwood Species

    洛谷 UVA10226 Hardwood Species

    洛谷评测传送门

    题目描述

    PDF

    img

    输入格式

    img

    输出格式

    img

    输入输出样例

    输入 #1复制

    输出 #1复制

    题目翻译:

    给定若干字符串,输出格式为:(按字典序)给出的字符串+这个字符串出现次数在给定字符串总数之中的占比。

    注意:多组数据。

    题解:

    介绍三种东西:

    第一种——字符串忽略空格只考虑回车的输入方式。

    第二种——(C++\,\,STL\,\,map)容器。

    第三种——字典树。

    第一种:

    字符串忽略空格只考虑回车的输入方式。

    代码如下:

    getline(cin,s);
    

    (具体的使用方法可以去网上看,但是讲的都过于繁琐,各种流什么玩意的专业术语根本看不懂(可能是蒟蒻太弱了)),我个人认为大家只需要记住这个玩意的格式就可以。

    这里的s指代的是(C++STL)中的(string)容器。如果有对这个容器还不是很了解的小伙伴,请移步本蒟蒻的这篇博客:

    浅谈C++ STL string容器

    第二种:

    map容器。

    如果有对map容器不是很熟悉的小伙伴请参考本蒟蒻的这篇博客:

    详解C++ STL map容器

    第三种:

    字典树。

    如果有对字典树还不是很了解的小伙伴请参考本蒟蒻的这篇博客:

    详解字典树


    好了,我们现在来说思路:

    题目让我们统计字符串出现的次数,那么我们很容易想到(map)所构建的这种映射关系,建立一个(map)构建由(string)(int)的一个映射就可以方便的统计这些信息。

    最令人舒适的是,(map)自带的第一关键字排序正好支持(string)的字典序操作。简直不要太舒服!

    于是得出了一份超短AC代码:

    注:需要注意很多细节,多组数据很恶心,卡换行卡多换行,一定要仔细比照自己的代码和下面的程序到底一不一样。

    #include<cstdio>
    #include<map>
    #include<iostream>
    #include<string>
    using namespace std;
    int t,tot;
    string s;
    map<string,int> mp;
    map<string,int>::iterator it;
    int main()
    {
        scanf("%d
    ",&t);
        while(t--)
        {
            tot=0;
            mp.clear();
            while(1)
            {
                getline(cin,s);
                if(s[0]=='')
                    break;
                tot++;
                mp[s]++;
            }
            for(it=mp.begin();it!=mp.end();it++)
            {
                double ans=(it->second)*100.0/tot;
                printf("%s %.4lf
    ",it->first.c_str(),ans);
            }
            if(t)
                puts("");
        }
        return 0;
    }
    
  • 相关阅读:
    科目一考试顺口溜 假一吊二撤三醉五逃终身酒犯罪
    Intellij IDEA 关闭和开启自动更新提示
    Spring注解之@Autowired:装配构造函数和属性
    Spring注解之@Autowired:Setter 方法上使用@Autowired注解
    Spring注解之@Autowired组件装配
    Spring注解之@Autowired:注入Arrays, Collections, and Maps
    SQL语句between and边界问题
    Spring中几个最常见的注解
    编辑距离(C++)
    回溯法解N皇后问题
  • 原文地址:https://www.cnblogs.com/fusiwei/p/11973229.html
Copyright © 2011-2022 走看看