zoukankan      html  css  js  c++  java
  • cogs 615. 韩国明星 STL map

    615. 韩国明星

    ★★   输入文件:star.in   输出文件:star.out   简单对比
    时间限制:2 s   内存限制:128 MB

    【问题描述】


    在LazyCat同学的影响下,Roby同学开始听韩国的音乐,并且越来越喜欢H.o.T,尤其喜欢安七炫和Tony,可是,爱学习爱思考的Roby同学想,如果以后喜欢的韩星越来越多怎么办呢?Roby怎么知道Roby最喜欢谁呢(Roby都不知道谁知道呢。。。。)? 
    于是,Roby同学求助于你。 
    Roby首先会给你一张表,表上是所有他认识的韩星的名字,一开始他对所有韩星的好感度都为0。 
    然后Roby会告诉你一些他对某个韩星的好感度变化。 
    最后,请按照Roby对他们好感从大到小的顺序输出他们。

    [输入] 
    第一行一个个数N,表示Roby知道的韩星数目。 
    后面有N行,表示每一个Roby认识的韩星的名字。 
    再下面一行一个数K。 
    接下来2*K行,每两行为一组,上面一行为韩星的名字Name,下面一行为好感度变化量Change。

    [输出] 
    N*2行,依据韩星们的受Roby好感度从大到小的顺序输出,每两行为一组,第一行输出韩星的名字,第二行输出受Roby的好感度。

    [样例输入] 

    HhIsaGay 
    ZcLoveStudy 
    OneBlueOne 

    ZcLoveStudy 
    100 
    OneBlueOne 
    8888 
    ZcLoveStudy 
    20 
    OneBlueOne 
    8888 
    HhIsaGay 
    -1000


    [样例输出] 
    OneBlueOne 
    17776 
    ZcLoveStudy 
    120 
    HhIsaGay 
    -1000

    [数据范围] 
    对于20%的数据,保证N<=100,K<=100. 
    对于40%的数据,保证N<=10000,K<=30000. 
    对于100%的数据,保证N<=100000 -8888<=Change<=8888 K<=100000.

    [时限] 
    2S

    感觉这一道题还是用map比较简单啊~

    map的用法可以看一下 这里

    map<string,int> 轻松过掉啦

    #include<stdio.h>
    #include<map>
    #include<string>
    #include<cstring>
    #include<algorithm>
    #include<iostream>
    using namespace std;
    map<string,int> Map;
    string Name[100005];
    struct Star
    {
        string s;
        int Value;
    } arr[100005];
    int cmp(Star a,Star b)
    {
        return a.Value>b.Value;
    }
    int main()
    {
        freopen("star.in","r",stdin);
        freopen("star.out","w",stdout);
        int n;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>Name[i];
            Map[Name[i]]=0;
            arr[i].s=Name[i];    
        }    
        int k;
        cin>>k;
        for(int i=1;i<=k;i++)
        {
            string s;
            int a;
            cin>>s>>a;
            Map[s]+=a;
        }
        for(int i=1;i<=n;i++)
            arr[i].Value=Map[arr[i].s];
        sort(arr+1,arr+n+1,cmp);
        for(int i=1;i<=n;i++)
            cout<<arr[i].s<<endl<<arr[i].Value<<endl;
        return 0;
    } 
  • 相关阅读:
    【Nginx】url 带有 “https://” 双斜杠特殊处理
    【layui】tepmlet 格式化 table 数据
    于二零二零年:终章
    【Golang】练习-Web 处理 form 表单请求失败不刷新页面并保存输入的数据
    实现纸牌游戏的随机抽牌洗牌过程(item系列几个内置方法的实例)
    面向对象的进阶(item系列,__new__,__hash__,__eq__)
    面向对象阶段复习
    计算器实例
    反射
    静态方法staticmethod和类方法classmethod
  • 原文地址:https://www.cnblogs.com/Tidoblogs/p/11396849.html
Copyright © 2011-2022 走看看