2018浙江省赛 L Doki Doki Literature Club(简单贪心)

题目链接:http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5761

题意:构造一个字符串,使得开心值最大

代码:

#include <iostream>
#include <algorithm>
#include <string>

using namespace std;

int T;
int n,m;


struct node
{
    string str;
    long long w;
}a[1000+100];

bool cmp(node a,node b)
{
    if(a.w==b.w)
        return a.str<b.str;
    return a.w>b.w;
}

int main()
{
    ios::sync_with_stdio(false);
    cin>>T;
    while(T--)
    {
        int i;
        cin>>n>>m;
        for(i=1;i<=n;i++)
        {
            cin>>a[i].str>>a[i].w;
        }
        sort(a+1,a+n+1,cmp);
        long long sum=0;
        for(int i=1;i<=m;i++)
        {
            sum+=(m-i+1)*a[i].w;
        }
        cout<<sum<<" ";
        for(int i=1;i<m;i++) cout<<a[i].str<<" ";
        cout<<a[m].str<<endl;
    }
    return 0;
}

英语还是太差了呀,比赛的时候没看懂。。。

posted @ 2018-05-06 16:59  Somnus、M  阅读(173)  评论(0编辑  收藏  举报