luogu1042:乒乓球:字符统计+细节处理:NOIP2013普及组T1

93 篇文章 0 订阅
78 篇文章 0 订阅

题目连接:该题是luogu试炼场的2-2:T3


题目大意:

1 给出一个字符串,求在11分制和21分制下,各自的终局和比分情况;


解题思路:

1 纯粹的模拟题,注意一些细节就可以了;

2 注意结束条件:某一方到达或者超过分制,并且分差超过2分;

3 注意最后一盘的0:0的情况;


上代码:

//luogu1042:乒乓球
//不定长度的字符读入;
//细节处理 
 
#include<cstdio>
#include<cstdlib>

char s[63000],ss;
int n=0;//长度 

void input()//读入
{
    while(1) 
    {
        scanf("%c",&ss);
        if(ss=='W'||ss=='L') s[++n]=ss;
        else if(ss=='E') break;
    }
}

void pd(int x)//x分制的判断 
{
    int a=0,b=0;
    for(int i=1;i<=n;i++)//扫描整个字符串 
    {
        if(s[i]=='W') a++;
        if(s[i]=='L') b++;
        
        if((a>=x||b>=x)&&abs(a-b)>=2)//有人胜出
        {
            printf("%d:%d\n",a,b);
            a=b=0;
        } 
        if(i==n)//最后一盘,不管得分如何都要输出 
        {
            printf("%d:%d\n",a,b);
        }	
    }
    if(n==0)//特判 
    {
        printf("0:0\n");
    }
}

int main()
{
    input();//读入 
     
    pd(11);//11分制 
    printf("\n");
    pd(21);//21分制 
    
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值