题解

382 条题解

  • 0
    @ 2006-11-15 12:20:23

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

  • 0
    @ 2006-11-05 19:21:55

    编译通过...

    ├ 测试数据 01:运行超时|无输出...

    ├ 测试数据 02:答案错误... ├ 标准行输出

     ├ 错误行输出

    ├ 测试数据 03:答案错误... ├ 标准行输出

     ├ 错误行输出

    ├ 测试数据 04:答案错误... ├ 标准行输出

     ├ 错误行输出

    ├ 测试数据 05:答案错误... ├ 标准行输出

     ├ 错误行输出

    ├ 测试数据 06:运行超时|无输出...

    ├ 测试数据 07:运行超时|无输出...

    ├ 测试数据 08:答案错误... ├ 标准行输出

     ├ 错误行输出

    ├ 测试数据 09:答案错误... ├ 标准行输出

     ├ 错误行输出

    ├ 测试数据 10:答案错误... ├ 标准行输出

     ├ 错误行输出

    ---|---|---|---|---|---|---|---|-

    Unaccepted 有效得分:0 有效耗时:0ms

  • 0
    @ 2006-11-03 21:11:27

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    纪念下

    注意1 数组要开大 2 打球规则 。。。。。。

  • 0
    @ 2006-10-12 20:50:40

    同意SharnHoiste

    用Fish测,第6组TLE,第7组WA

    7组: 标准行输出:0:11

    错误行输出:20:0

    依靠Puppy,成功AC

    庆祝^_^

  • 0
    @ 2006-10-04 14:41:04

    刚开始没有考虑到分差大于等于2时才算赢,结果只拿了50分。

    后来加上这一步之后就AC了!

  • 0
    @ 2006-10-02 22:11:23

    小弟有问题,在算完11制时,已经把输入读到尾了,有什么语句可以重新指向头,然后算21制?

  • 0
    @ 2006-09-27 18:22:30

    注意3点

    1. 一般情况下 首先达到11分或者21分的会赢

    2. 达到11分或21分后, 必须比对手多两分这局才算赢 不然一直比下去。

    3. Puppy的服务器没有任何问题 和对于Fish等服务器有的时候第7组数据会出现答案错误 莫名其妙。

  • 0
    @ 2006-09-25 12:27:22

    一定要把数组开到十万啊(我只开1000,过4个,开100000后就AC了)^-^

  • 0
    @ 2006-09-24 15:09:02

    郁闷...评测机差距好大啊.....当评测机是Vivid Puppy的时候.我通过了.其他的评测机我都90分,第6个超时...!!!

  • 0
    @ 2006-09-23 10:32:00

    跳楼……看楼下的题解时搞得我心惊肉跳的,我刚学信息的时候做的就是这题……也是一边就过……

    char c;

    long a[25000][2],b[25000][2],i,l1,l2;

    我就用了这点变量一遍过了……

  • 0
    @ 2006-09-18 14:20:08

    不边读边做也可以,分享一下我的算法。

    先开1个s数组(string),再依次读行,如果全部是空格就删掉,然后将所有字符串并到大字符串st(ansistring)里,并用o(length(st))的时间去掉所有多于空格,剩下的就很简单了~

  • 0
    @ 2006-09-11 19:57:40

    其实就是边读边做,将结果记录到一个数组里,最后统一输出(别忘了输出当前比分,包括Star_Gym大牛提醒的0:0)。我这样做一次就A了。

  • 0
    @ 2006-09-09 16:35:47

    To xrara:

    大概是你数组开小了......第六个数据是五万个'W'........

    ma数组起码要开到2500..............

    P.S.我终于懂了!@!

    必须要边读边写11的那组才能过.....

    偶试了n次读完再写,无数次的unaccepted....

    还有,第十个数据11:0之后,应该要有0:0...这个比较..晕..

  • 0
    @ 2006-09-04 20:26:03

    数组改成10万就行了~~~(还不行就改成100万)~~~呵呵

  • 0
    @ 2006-09-03 21:54:49

    当两人的比分之差小于等于1,且其中一人达到21或11时,比赛不算结束,

    直到比分之差大于1为止!

  • -1
    @ 2021-05-19 09:38:56
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    /**
     * @author wpx
     * @version V1.0
     * @Package com.algorithm
     * @date 2021/5/18 14:05
     */
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
            StringBuilder builder = new StringBuilder();
            while(true){
                final String oneLine = sc.nextLine();
                int endPos = oneLine.indexOf("E");
                if(endPos != -1){
                    // 表明有结束符
                    builder.append(oneLine.substring(0, endPos).replaceAll("\\s", ""));
                    break;
                } else {
                    builder.append(oneLine.replaceAll("\\s", ""));
                }
            }
            String str = builder.toString();
            int wNum = 0;
            int lNum = 0;
            List<String> resultOne = new ArrayList<>();
            for(int i = 0; i < str.length(); i++){
                String winner = String.valueOf(str.charAt(i));
                if(winner.equals("W")){
                    wNum++;
                } else {
                    lNum++;
                }
                // 判断是否已经有胜负
                if(wNum >= 11 || lNum >= 11) {
                    // 判断是否存在加赛的情况
                    if(wNum >= 10 && lNum >= 10) {
                        // 判断比分差异是否大于2
                        if(wNum - lNum == 2 || wNum - lNum == -2){
                             resultOne.add(wNum + ":" + lNum);
                            lNum = 0;
                            wNum = 0;
                        }
                    } else {
                         resultOne.add(wNum + ":" + lNum);
                        lNum = 0;
                        wNum = 0;
                    }
                }
            }
            resultOne.add(wNum + ":" + lNum);
            lNum = 0;
            wNum = 0;
            List<String> resultTwo = new ArrayList<>();
            for(int i = 0; i < str.length(); i++){
                String winner = String.valueOf(str.charAt(i));
                if(winner.equals("W")){
                    wNum++;
                } else {
                    lNum++;
                }
                // 判断是否已经有胜负
                if(wNum >= 21 || lNum >= 21) {
                    // 判断是否存在加赛的情况
                    if(wNum >= 20 && lNum >= 20) {
                        // 判断比分差异是否大于2
                        if(wNum - lNum == 2 ||  wNum - lNum == -2){
                            resultTwo.add(wNum + ":" + lNum);
                            lNum = 0;
                            wNum = 0;
                        }
                    } else {
                        resultTwo.add(wNum + ":" + lNum);
                        lNum = 0;
                        wNum = 0;
                    }
                }
            }
            resultTwo.add(wNum + ":" + lNum);
            for(String tmpObj : resultOne){
                System.out.println(tmpObj);
            }
            System.out.println();
            for(String tmpObj : resultTwo){
                System.out.println(tmpObj);
            }
        }
    }
    
    
  • -1
    @ 2020-12-22 22:36:46

    0:0的属实坑爹

    match = []
    list1 = []
    s = 0
    w = 0
    l = 0
    
    while True:
        list1 = list(input())
        for i in list1:
            if i != 'E':
                match.append(i)
            else:
                s = 1
                break
        if s == 1:
            break
    
    for i in match:
        if i == 'W':
            w+=1
        if i == 'L':
            l+=1
        if (w >= 11 or l >= 11) and (w - l >= 2 or l - w >= 2):
            print('{:.0f}:{:.0f}'.format(w,l))
            w = 0
            l = 0
            continue
    
    if w > 0 or l > 0:
        print('{:.0f}:{:.0f}'.format(w,l))
    if w == 0 and l == 0:
        print("0:0")
    print()
    w = 0
    l = 0
    
    for i in match:
        if i == 'W':
            w+=1
        if i == 'L':
            l+=1
        if (w >= 21 or l >= 21) and (w - l >= 2 or l - w >= 2):
            print('{:.0f}:{:.0f}'.format(w,l))
            w = 0
            l = 0
            continue
    
    if w > 0 or l > 0:
        print('{:.0f}:{:.0f}'.format(w,l),end=' ')
    if w == 0 and l == 0:
        print("0:0",end=' ')
    
  • -1
    @ 2020-07-17 09:56:02

    用python关键要注意,print是默认回车的!
    坑了我1h啊这个问题
    用print("23333", end='')可以取消默认会车

    Str = ''
    while 1:
        a = input()
        if 'E' in a:
            Str+=a.split("E")[0]
            break
        else: Str+=a
            
    #11分
    nW=0;nL=0
    for i in Str:
        if i == 'W':
            nW+=1
        else: nL+=1
        
        if (nW>=11 or nL>=11) and abs(nW-nL)>=2:
            print("%s:%s\n" % (nW,nL))
            nW=0;nL=0
    print("%s:%s\n" % (nW,nL))
    
    print('\n')
    
    #21分
    nW=0;nL=0
    for i in Str:
        if i == 'W':
            nW+=1
        else: nL+=1
        
        if (nW>=21 or nL>=21) and abs(nW-nL)>=2:
            print("%s:%s\n" % (nW,nL))
            nW=0;nL=0
                    
    print("%s:%s" % (nW,nL), end='')
    
    
  • -1
    @ 2019-08-01 19:39:49

    #include<stdio.h>
    #include<string.h>
    int main()
    {
    char s[100000]={0},c;
    int i=0,W=0,L=0,x=0,y=0,cnt;
    scanf("%c",&c);
    while(c!='E')
    {
    s[i++]=c;
    if(c=='W')W++;
    else if (c=='L')L++;
    if((W-L>=2&&W>=11)||(L-W>=2&&L>=11))
    {
    printf("%d:%d\n",W,L);
    L=0,W=0;
    }
    scanf("%c",&c);
    }
    printf("%d:%d\n\n",W,L);
    for(cnt=0;cnt<i;cnt++)
    {
    if(s[cnt]=='W')x++;
    else if (s[cnt]=='L')y++;
    if((x-y>=2&&x>=21)||(y-x>=2&&y>=21))
    {
    printf("%d:%d\n",x,y);
    x=0,y=0;

    }
    }
    printf("%d:%d\n\n",x,y);
    return 0;
    }

  • -1
    @ 2019-08-01 19:39:37

    #include<stdio.h>
    #include<string.h>
    int main()
    {
    char s[100000]={0},c;
    int i=0,W=0,L=0,x=0,y=0,cnt;
    scanf("%c",&c);
    while(c!='E')
    {
    s[i++]=c;
    if(c=='W')W++;
    else if (c=='L')L++;
    if((W-L>=2&&W>=11)||(L-W>=2&&L>=11))
    {
    printf("%d:%d\n",W,L);
    L=0,W=0;
    }
    scanf("%c",&c);
    }
    printf("%d:%d\n\n",W,L);
    for(cnt=0;cnt<i;cnt++)
    {
    if(s[cnt]=='W')x++;
    else if (s[cnt]=='L')y++;
    if((x-y>=2&&x>=21)||(y-x>=2&&y>=21))
    {
    printf("%d:%d\n",x,y);
    x=0,y=0;

    }
    }
    printf("%d:%d\n\n",x,y);
    return 0;
    }

信息

ID
1217
难度
7
分类
字符串 点击显示
标签
递交数
18788
已通过
4300
通过率
23%
被复制
34
上传者