CodeForces 2A Winner(CodeForces的题意总是那么难理解)——Codeforces Beta Round #2
来源:互联网 发布:淘宝工作室是做什么 编辑:程序博客网 时间:2024/06/03 17:21
/*********************************************************************/
题意:对于CodeForces的题目,真心是有点难理解,或许是因为本人英语水平太差吧,至少这题一开始理解起来并不是像题目本身所要表达的意思那样。
其实此题就是有n个回合,每个回合给你一个人名,以及该回合此人的得分(此人在之前的回合可能出现过),问最终得分最高(暂且将最高分记为m)的人的名字。若有多个人均得到了最高分,则输出回合中得分最先大于等于m的人的名字。
解题思路:首先,题目明确指出过程中会出现得分为负的情况,一开始我理解成了过程中出现负分的话,此人直接淘汰,即不记录在最终评定最高分的人內。然而,orz,理解错误。
有一种情况是,某个人在过程中分数会暂时超过最终的最高分,这点要考虑进去
#pragma comment(linker, "/STACK:1024000000,1024000000")#include<stdio.h>#include<string.h>#include<stdlib.h>#include<queue>#include<stack>#include<math.h>#include<vector>#include<map>#include<set>#include<stdlib.h>#include<cmath>#include<string>#include<algorithm>#include<iostream>#define exp 1e-10using namespace std;const int N = 1001;const int inf = 1000000000;const int mod = 2009;struct node{ string s; int k;}w[N];map<string,int> s,m;int main(){ int n,i,Max; Max=-inf; scanf("%d",&n); for(i=0;i<n;i++) { cin>>w[i].s>>w[i].k; s[w[i].s]+=w[i].k;//求出每个人最终的得分 } for(i=0;i<n;i++) if(Max<s[w[i].s]) Max=s[w[i].s];//记录最终得分的最高分 for(i=0;s[w[i].s]<Max||(m[w[i].s]+=w[i].k)<Max;i++);//找到最终得分为最高分且最先不小于最高分的人即为所求 cout<<w[i].s<<endl; return 0;}菜鸟成长记
0 0
- CodeForces 2A Winner(CodeForces的题意总是那么难理解)——Codeforces Beta Round #2
- Codeforces Beta Round #2 A. Winner
- Codeforces Beta Round #2 A. Winner
- Codeforces Round #2A Winner
- codeforces 2A Winner
- CODEFORCES 2A-Winner
- codeforces 2A. Winner
- Codeforces 2A Winner
- codeforces 2A Winner
- codeforces 2-A Winner
- codeforces 2A.Winner
- Codeforces 2A. Winner
- Codeforces 2A :winner
- CodeForces 2A-Winner
- 【codeforces#2A】Winner
- CodeForces#2A Winner
- CodeForces 2A. Winner
- Codeforces #2 A Winner
- 安卓控件使用系列1:TextView显示各种格式的文本
- Struts2 多文件上传
- socket套接字编程函数
- JavaScript之浏览器兼容问题
- 转载:iOS开发的一些奇巧淫技
- CodeForces 2A Winner(CodeForces的题意总是那么难理解)——Codeforces Beta Round #2
- 习题6-11 树重建 UVa 10410 *
- 复制构造函数跟赋值构造函数的区别
- IOS中Json解析的四种方法
- 金山词霸2016 代理设置 方法
- innodb 优化
- Linux常用命令
- py操作cookie
- vs开发调用窗体的方法