优美的大乔 2022-08-06 13:57 采纳率: 94.7%
浏览 44
已结题

NOIP2003普及t1乒乓球

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

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

WWWWWWWWWWWWWWWWWWWWWWLW

在11分制下,此时比赛的结果是华华第一局11比0获胜,第二局11比0获胜,正在进行第三局,当前比分1比1。而在21分制下,此时比赛结果是华华第一局21比0获胜,正在进行第二局,比分2比1。如果一局比赛刚开始,则此时比分为0比0。

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

我上网查出了答案,但看不懂,所以来请教一下。

#include<iostream> 
using namespace std;
char s[1000000];
int main(){      
    int i=0;
    while(1){
        cin>>s[i];
        if(s[i]=='E') break;
        i++;
        if(i%20==0)getchar();
    }         
    int a=0,b=0,j=0;
    while(s[j]!='\0'){
      if(s[j]=='W')a++;
 else if(s[j]=='L')b++;
 j++;              
      if((a>=11&&a-b>=2)||(b>=11&&b-a>=2)||s[j-1]=='E'){
  
        cout<<a<<':'<<b<<endl;
        a=0;
        b=0;
continue;}
}
    cout<<endl;
    j=0;a=0;b=0;
     while(s[j]!='\0'){
      if(s[j]=='W')a++;
 else if(s[j]=='L')b++;
j++;
       
        
      if((a>=21&&a-b>=2)||(b>=21&&b-a>=2)||s[j-1]=='E'){
  
        cout<<a<<':'<<b<<endl;
        a=0;
        b=0;
continue;}
}
  
    return 0;
}
/*  坑点: 乒乓球规则  a-b>2  
    By onisac */

so,有哪位同胞帮我解释一下,栓Q!

  • 写回答

1条回答 默认 最新

  • _L.Y.H._ 2022-12-26 21:26
    关注

    比如,现在有这么一份记录,(其中 W 表示华华获得一分,L 表示华华对手获得一分): WWWWWWWWWWWWWWWWWWWWWWLW。在 11 分制下,此时比赛的结果是华华第一局 11 比 0 获胜,第二局 11 比 0 获胜,正在进行第三局,当前比分 1 比 1。而在 21 分制下,此时比赛结果是华华第一局 21 比 0 获胜,正在进行第二局,比分 2 比 1。如果一局比赛刚开始,则此时比分为 0 比 0。直到分差大于或者等于2,一局才结束。 本题就是要对于一系列比赛信息的输入(WL 形式),输出正确的结果。
    读入字符串,分别按照 11 分制和 21 分制下的规则模拟比赛进行计分输出。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月2日
  • 已采纳回答 1月1日
  • 创建了问题 8月6日

悬赏问题

  • ¥15 Oracle触发器记录修改前后的字段值
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器