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

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


题目大意:

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


解题思路:

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

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

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


上代码:

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

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;
}

 

你可能感兴趣的:(题解,字符串,luogu,大礼包,luogu,试练场,模拟,乒乓球)