题目背景

国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中1111分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白1111分制和2121分制对选手的不同影响。在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。

题目描述

华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在1111分制和2121分制下,双方的比赛结果(截至记录末尾)。

比如现在有这么一份记录,(其中W表示华华获得一分,L表示华华对手获得一分):

WWWWWWWWWWWWWWWWWWWWWWLW

在1111分制下,此时比赛的结果是华华第一局1111比00获胜,第二局1111比00获胜,正在进行第三局,当前比分11比11。而在2121分制下,此时比赛结果是华华第一局2121比00获胜,正在进行第二局,比分22比11。如果一局比赛刚开始,则此时比分为00比00。直到分差大于或者等于22,才一局结束。

你的程序就是要对于一系列比赛信息的输入(WLWL形式),输出正确的结果。

输入输出格式

输入格式:

每个输入文件包含若干行字符串,字符串有大写的WW、LL和EE组成。其中EE表示比赛信息结束,程序应该忽略E之后的所有内容。

输出格式:

输出由两部分组成,每部分有若干行,每一行对应一局比赛的比分(按比赛信息输入顺序)。其中第一部分是1111分制下的结果,第二部分是2121分制下的结果,两部分之间由一个空行分隔。

输入输出样例

输入样例#1: 复制

WWWWWWWWWWWWWWWWWWWW

WWLWE

输出样例#1: 复制

11:0

11:0

1:1

21:0

2:1

下面还有一个用IO软件包优化的代码

  1. import java.util.ArrayList;
  2. import java.util.Scanner;
  3. public class pingpangqiu {
  4. public static void main(String[] args) {
  5. ArrayList<String> list = new ArrayList<String>();
  6. int win1 = 0;
  7. int lose1 = 0;
  8. int win2 = 0;
  9. int lose2 = 0;
  10. int temp = 0;
  11. Scanner sc =new Scanner(System.in);
  12. String s = "";
  13. // int count = 0;
  14. while(true){
  15. String str = sc.nextLine();
  16. // count++;
  17. for (int i = 0; i < str.length(); i++) {
  18. if(str.charAt(i)=='E'){
  19. temp = 1;
  20. str = str.substring(0,i);
  21. break;
  22. }
  23. }
  24. s=s+str;
  25. if(temp!=0){
  26. break;
  27. }
  28. }
  29. sc.close();
  30. // System.out.println(count);
  31. char [] num = s.toCharArray();
  32. for (int i = 0; i < num.length; i++) {
  33. if(num[i]=='W'){
  34. win1++;
  35. win2++;
  36. }else{
  37. lose1++;
  38. lose2++;
  39. }
  40. if((win1>=11 || lose1>=11) && Math.abs(win1-lose1)>=2){
  41. System.out.println(win1+":"+lose1);
  42. win1=0;
  43. lose1=0;
  44. }
  45. if((win2>=21 || lose2>=21) && Math.abs(win2-lose2)>=2){
  46. String ss =win2+":"+lose2;
  47. list.add(ss);
  48. win2=0;
  49. lose2=0;
  50. }
  51. }
  52. System.out.println(win1+":"+lose1);
  53. System.out.println();
  54. for (int i = 0; i < list.size(); i++) {
  55. System.out.println(list.get(i));
  56. }
  57. System.out.println(win2+":"+lose2);
  58. }
  59. }
  1. import java.io.BufferedInputStream;
  2. import java.util.Scanner;
  3. public class pingpangqiu2 {
  4. static String str; //有用的比赛信息
  5. static int a,b; //两人的比分
  6. public static void main(String[] args) {
  7. StringBuilder sb = new StringBuilder();
  8. Scanner sc = new Scanner(new BufferedInputStream(System.in));
  9. do{
  10. sb.append(sc.next());
  11. }while(sb.indexOf("E")==-1); //出现E停止录入
  12. //截取有用的字符串
  13. str = sb.substring(0, sb.indexOf("E")+1);
  14. ps11();
  15. System.out.println();
  16. ps21();
  17. }
  18. public static void ps11(){ //11
  19. a = b = 0;
  20. for(int i=0;str.charAt(i)!='E';i++){
  21. if(str.charAt(i)=='W') a += 1;
  22. else b += 1;
  23. if((a-b>=2||b-a>=2)&&(a>=11||b>=11)) {//决出胜负
  24. System.out.println(a+":"+b); //输出
  25. a = b = 0; //重置
  26. }
  27. }
  28. System.out.println(a+":"+b); //输出
  29. }
  30. //11 改成 21 即可
  31. public static void ps21(){//21
  32. a = b = 0;
  33. for(int i=0;str.charAt(i)!='E';i++){
  34. if(str.charAt(i)=='W') a += 1;
  35. else b += 1;
  36. if((a-b>=2||b-a>=2)&&(a>=21||b>=21)) {//决出胜负
  37. System.out.println(a+":"+b); //输出
  38. a = b = 0; //重置
  39. }
  40. }
  41. System.out.println(a+":"+b); //输出
  42. }
  43. }

(Java实现) 洛谷 P1042 乒乓球的更多相关文章

  1. 洛谷 P1042 乒乓球

    P1042 乒乓球 var s:string; a1:array[1..50000] of char; i,n,x,y:longint; procedure f1; begin while not e ...

  2. 洛谷P1042 乒乓球【模拟】

    题目背景 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中111111分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役.华华就是其中一位 ...

  3. 洛谷——P1042 乒乓球

    https://www.luogu.org/problem/show?pid=1042 题目背景 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中11分制改 ...

  4. 洛谷P1042 乒乓球

    https://www.luogu.org/problem/P1042 #include<bits/stdc++.h> using namespace std; ]; int w,l; i ...

  5. Java实现 洛谷 Car的旅行路线

    输入输出样例 输入样例#1: 1 3 10 1 3 1 1 1 3 3 1 30 2 5 7 4 5 2 1 8 6 8 8 11 6 3 输出样例#1: 47.5 import java.util. ...

  6. Java实现 洛谷 P1738 洛谷的文件夹

    题目描述 kkksc03是个非凡的空想家!在短时间内他设想了大量网页,然后总是交给可怜的lzn去实现. 洛谷的网页端,有很多文件夹,文件夹还套着文件夹. 例如:/luogu/application/c ...

  7. Java实现洛谷 P1428 小鱼比可爱

    题目描述 人比人,气死人:鱼比鱼,难死鱼.小鱼最近参加了一个"比可爱"比赛,比的是每只鱼的可爱程度.参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只 ...

  8. 洛谷P1402——乒乓球

    原题链接: https://www.luogu.com.cn/problem/P1042 题面简述 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中11分制 ...

  9. Java实现洛谷 P1007独木桥

    题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样的无聊.你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们.士兵 ...

随机推荐

  1. 使用elasticsearch搭建自己的搜索系统

    什么是elasticsearch Elasticsearch 是一个开源的高度可扩展的全文搜索和分析引擎,拥有查询近实时的超强性能. 大名鼎鼎的Lucene 搜索引擎被广泛用于搜索领域,但是操作复杂繁 ...

  2. qt绘制甘特图

    重写paintEvent事件,代码如下 void xx::paintEvent(QPaintEvent *event){ QPainter painter(this); //绘制x,y轴,_maxWi ...

  3. MOS管和三极管开关特性

    不知道对不对? 待续!!!

  4. {path:“ /”,expires:7}这一段是什么意思?

    1.创建会话cookie: $ .cookie('name','value'); 2.创建到期的cookie,然后7天: $ .cookie('name','value',{到期日:7}); 3.创建 ...

  5. java-> 利用IO操作与递归实现目录的复制

    public class CopyDir { public static void main(String[] args) { copyDir(new File("d:\\a"), ...

  6. 「雕爷学编程」Arduino动手做(19)—震动报警模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...

  7. webpack-dev-server简记

    webpack -v 3.4.1 npm -v 3.10.10 /////////////////////////////////////// webpack的webpack-dev-server可以 ...

  8. Java POI 读取Excel数据转换为XML格式

    1.首先要下载poi相关的包:http://poi.apache.org/  ,以下是所需的jar包 2.贴上详细的代码 public class ExcelToXml { /** * 将excel的 ...

  9. Proteus仿真时出现Cannot open‘C:\Users\...\LISA7605.SDF’的错误

    目录 打开环境变量 更改环境变量 打开环境变量 更改环境变量 "用户变量"和"系统变量"栏里,找到TEMP与TMP,都改成%SystemRoot%\TEMP 改 ...

  10. python迭代器,生成器

    1. 迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外,迭代器的一大 ...