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; }
英语还是太差了呀,比赛的时候没看懂。。。