[codeforces] 2A - Winner
来源:互联网 发布:floyd算法流程图 编辑:程序博客网 时间:2024/05/19 16:28
原题地址:http://codeforces.com/problemset/problem/2/A
英文渣,原题看了半天理解错了,然后各种WA,回头看了一下才发现其实是挺简单的。
意思就是一群人玩一个游戏,最多有1000轮,每一轮都会有一个角色进行加减分的操作。到最后一轮结束时,分数最大的人获得胜利,如果有多个角色同时达到最高分,则首先达到或者超过这个最高分的人获胜(这里的最高分不是真个游戏过程中产生的最高分,而是最后一轮结束后从玩家中得出的最高分)
这里使用JAVA实现,用一个hashmap保存名字及分数,每轮进行加减分,并且将当前最高分的名字及分数分别储存在winnerList和scoreList中。结束后遍历一遍map,得到最高分,最后遍历数组得到第一个达到最高分者。
源代码:
package lanQiaoCup;import java.util.HashMap;import java.util.Iterator;import java.util.Scanner;import java.util.Set;/** * Created by Scruel on 2016/3/29. *///http://codeforces.com/problemset/problem/2/Apublic class CF2_A{ public static void main(String[] args) { Scanner input = new Scanner(System.in); HashMap<String, Integer> map = new HashMap<>(); int n = input.nextInt(); String[] winnerList = new String[n]; int[] scoreList = new int[n]; int count = 0; int max = 0, realMax = 0;//0为初始值,则不会出现负数胜利的情况 for (int i = 0; i < n; i++) { String name = input.next(); int score = input.nextInt(); if (map.get(name) == null) map.put(name, score); else map.replace(name, score + map.get(name)); if (realMax < map.get(name))//得到第一个最大值的人 { scoreList[count] = map.get(name); winnerList[count++] = name; } } Set<String> set = map.keySet(); for (Iterator<String> iter = set.iterator(); iter.hasNext(); ) { String key = iter.next(); if (map.get(key) > max) max = map.get(key); } for (int i = 0; i < n; i++) { if (scoreList[i] >= max && map.get(winnerList[i]) == max) { System.out.println(winnerList[i]); return; } } }}
0 0
- 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
- Codeforces 2 A. Winner
- [codeforces] 2A - Winner
- CodeForces - 2A - Winner
- Codeforces 2A Winner
- Apache common-lang 包
- SSOforJPush
- 初期草根站长适合做什么样的网站好?
- iOS 制作framework时,swift掉用OC,不支持桥接
- W5500 KEEPALIVE 功能流程简介以及应用
- [codeforces] 2A - Winner
- USB电池充电规范1.2版概述及充电检测器的重要角色
- 《我所理解的生活》
- SpinMenu 轮盘旋转样式的 Fragment 菜单控件,让 Fragment 切换更加炫酷
- Linux 软件安装到 /usr,/usr/local/ 还是 /opt 目录?
- Ionic-wechat项目边开发边学(一):环境搭建和创建一个项目
- mac pro系统升级MacOS Sierra后git无法使用解决
- 一. JNI 编程与 Android NDK - android程序中调用C写的库
- cout和std::cou区别