(Java实现) 洛谷 P1042 乒乓球
题目背景
国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中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软件包优化的代码
import java.util.ArrayList;
import java.util.Scanner;
public class pingpangqiu {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
int win1 = 0;
int lose1 = 0;
int win2 = 0;
int lose2 = 0;
int temp = 0;
Scanner sc =new Scanner(System.in);
String s = "";
// int count = 0;
while(true){
String str = sc.nextLine();
// count++;
for (int i = 0; i < str.length(); i++) {
if(str.charAt(i)=='E'){
temp = 1;
str = str.substring(0,i);
break;
}
}
s=s+str;
if(temp!=0){
break;
}
}
sc.close();
// System.out.println(count);
char [] num = s.toCharArray();
for (int i = 0; i < num.length; i++) {
if(num[i]=='W'){
win1++;
win2++;
}else{
lose1++;
lose2++;
}
if((win1>=11 || lose1>=11) && Math.abs(win1-lose1)>=2){
System.out.println(win1+":"+lose1);
win1=0;
lose1=0;
}
if((win2>=21 || lose2>=21) && Math.abs(win2-lose2)>=2){
String ss =win2+":"+lose2;
list.add(ss);
win2=0;
lose2=0;
}
}
System.out.println(win1+":"+lose1);
System.out.println();
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println(win2+":"+lose2);
}
}
import java.io.BufferedInputStream;
import java.util.Scanner;
public class pingpangqiu2 {
static String str; //有用的比赛信息
static int a,b; //两人的比分
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
Scanner sc = new Scanner(new BufferedInputStream(System.in));
do{
sb.append(sc.next());
}while(sb.indexOf("E")==-1); //出现E停止录入
//截取有用的字符串
str = sb.substring(0, sb.indexOf("E")+1);
ps11();
System.out.println();
ps21();
}
public static void ps11(){ //11
a = b = 0;
for(int i=0;str.charAt(i)!='E';i++){
if(str.charAt(i)=='W') a += 1;
else b += 1;
if((a-b>=2||b-a>=2)&&(a>=11||b>=11)) {//决出胜负
System.out.println(a+":"+b); //输出
a = b = 0; //重置
}
}
System.out.println(a+":"+b); //输出
}
//11 改成 21 即可
public static void ps21(){//21
a = b = 0;
for(int i=0;str.charAt(i)!='E';i++){
if(str.charAt(i)=='W') a += 1;
else b += 1;
if((a-b>=2||b-a>=2)&&(a>=21||b>=21)) {//决出胜负
System.out.println(a+":"+b); //输出
a = b = 0; //重置
}
}
System.out.println(a+":"+b); //输出
}
}
(Java实现) 洛谷 P1042 乒乓球的更多相关文章
- 洛谷 P1042 乒乓球
P1042 乒乓球 var s:string; a1:array[1..50000] of char; i,n,x,y:longint; procedure f1; begin while not e ...
- 洛谷P1042 乒乓球【模拟】
题目背景 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中111111分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役.华华就是其中一位 ...
- 洛谷——P1042 乒乓球
https://www.luogu.org/problem/show?pid=1042 题目背景 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中11分制改 ...
- 洛谷P1042 乒乓球
https://www.luogu.org/problem/P1042 #include<bits/stdc++.h> using namespace std; ]; int w,l; i ...
- 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. ...
- Java实现 洛谷 P1738 洛谷的文件夹
题目描述 kkksc03是个非凡的空想家!在短时间内他设想了大量网页,然后总是交给可怜的lzn去实现. 洛谷的网页端,有很多文件夹,文件夹还套着文件夹. 例如:/luogu/application/c ...
- Java实现洛谷 P1428 小鱼比可爱
题目描述 人比人,气死人:鱼比鱼,难死鱼.小鱼最近参加了一个"比可爱"比赛,比的是每只鱼的可爱程度.参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只 ...
- 洛谷P1402——乒乓球
原题链接: https://www.luogu.com.cn/problem/P1042 题面简述 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中11分制 ...
- Java实现洛谷 P1007独木桥
题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样的无聊.你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们.士兵 ...
随机推荐
- 使用elasticsearch搭建自己的搜索系统
什么是elasticsearch Elasticsearch 是一个开源的高度可扩展的全文搜索和分析引擎,拥有查询近实时的超强性能. 大名鼎鼎的Lucene 搜索引擎被广泛用于搜索领域,但是操作复杂繁 ...
- qt绘制甘特图
重写paintEvent事件,代码如下 void xx::paintEvent(QPaintEvent *event){ QPainter painter(this); //绘制x,y轴,_maxWi ...
- MOS管和三极管开关特性
不知道对不对? 待续!!!
- {path:“ /”,expires:7}这一段是什么意思?
1.创建会话cookie: $ .cookie('name','value'); 2.创建到期的cookie,然后7天: $ .cookie('name','value',{到期日:7}); 3.创建 ...
- java-> 利用IO操作与递归实现目录的复制
public class CopyDir { public static void main(String[] args) { copyDir(new File("d:\\a"), ...
- 「雕爷学编程」Arduino动手做(19)—震动报警模块
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...
- webpack-dev-server简记
webpack -v 3.4.1 npm -v 3.10.10 /////////////////////////////////////// webpack的webpack-dev-server可以 ...
- Java POI 读取Excel数据转换为XML格式
1.首先要下载poi相关的包:http://poi.apache.org/ ,以下是所需的jar包 2.贴上详细的代码 public class ExcelToXml { /** * 将excel的 ...
- Proteus仿真时出现Cannot open‘C:\Users\...\LISA7605.SDF’的错误
目录 打开环境变量 更改环境变量 打开环境变量 更改环境变量 "用户变量"和"系统变量"栏里,找到TEMP与TMP,都改成%SystemRoot%\TEMP 改 ...
- python迭代器,生成器
1. 迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外,迭代器的一大 ...