得10分,第二个就没有过,但是数据下下来,在本地是对的,不知道为什么

P1042 [NOIP2003 普及组] 乒乓球

chenjianyyzz @ 2024-08-14 06:24:50

#include <bits/stdc++.h>
using namespace std;
int score11[6000][3]={0}, score21[6000][3]={0};
int cnt11=1, cnt21=1;
int main()
{
    string remain="";
    bool findE = false;
    for (int i=1; i<=2500; i++)
    {
        //if find E, break
        string s;
        getline(cin,s); 
        for (int j=0; j<s.length(); j++)
        {
            if (s[j] == 'E') 
            {
                findE = true;
                break;
            }
            if (s[j] == 'W')
            {
                score11[cnt11][1]++; 
                score21[cnt21][1]++;
            } else if (s[j]='L')
            {
                score11[cnt11][2]++; 
                score21[cnt21][2]++;
            } ;

            if ((score11[cnt11][1]>=11 || score11[cnt11][2]>=11) && (abs(score11[cnt11][1]-score11[cnt11][2])>=2))
                cnt11++;
            if ((score21[cnt21][1]>=21 || score21[cnt21][2]>=21) && (abs(score21[cnt21][1]-score21[cnt21][2])>=2))
                cnt21++;    
        }
        if (findE) break;
    }

    //判断是否需要会退一个
    if (cnt11>1)        //*******至少需要有一个结果 
        if (score11[cnt11][1]==0 && score11[cnt11][2]==0) cnt11--;
    if (cnt21>1)
        if (score21[cnt21][1]==0 && score21[cnt21][2]==0) cnt21--;

    for (int i=1; i<=cnt11; i++)
        cout << score11[i][1]<<":"<<score11[i][2]<<endl;
    cout << endl;
    for (int i=1; i<=cnt21; i++)
        cout << score21[i][1]<<":"<<score21[i][2]<<endl;
    return 0;
 } 

by hsr_ray_kkksc03 @ 2024-08-14 08:10:09

可能是代码厌氧,可以试试开关一下O2


by Finner_forgeter @ 2024-08-14 08:18:40

#include <bits/stdc++.h>
using namespace std;
char bs[100005];
int j11[10005][3]={},j21[10005][3]={};//分别11,21制 
int main(){
    cin.getline(bs,100005,'E');
    int c=strlen(bs)-1;//最后的E不算 
    //开始处理11
    int t=0,j=1;//t为辅助,j为局数 
    while(t<=c){
        if(bs[t]=='W')
        j11[j][1]++;
        else if(bs[t]=='L')//有可能是空格或换行 
        j11[j][2]++;
        if((j11[j][1]>=11||j11[j][2]>=11)&&abs(j11[j][1]-j11[j][2])>=2){
            j++;//达到就让局数加一 
        }
        t++;
    }
    for(int i=1;i<=j;i++)
    cout<<j11[i][1]<<":"<<j11[i][2]<<endl;
    cout<<endl;//题意空格 
    //开始处理21(同上) 
    t=0,j=1;
    while(t<=c){
        if(bs[t]=='W')
        j21[j][1]++;
        else if(bs[t]=='L')
        j21[j][2]++;
        if((j21[j][1]>=21||j21[j][2]>=21)&&abs(j21[j][1]-j21[j][2])>=2){
            j++;
        }t++;
    }
    for(int i=1;i<=j;i++)
    cout<<j21[i][1]<<":"<<j21[i][2]<<endl;
    return 0;
}

甩题解没意见吧(其实是看不懂楼主的代码) 写注释写了10mins,求关谢 @chenjianyyzz


by Finner_forgeter @ 2024-08-14 08:21:04

这个可以分开处理的,一起处理太乱了 @chenjianyyzz


by chenjianyyzz @ 2024-08-14 09:55:40

@Finner_forgeter

我的代码方法其实和你的是一样的,只是把11比分和21比分合并在一起考虑了。

但是我还是不知道为什么自己的没有过,WA。不知道哪位能帮忙解答一下?

@Finner_forgeter : 谢谢您。


by chenjianyyzz @ 2024-08-14 09:58:00

下面是测试点的输入输出,求答疑 输入: P1042_2.in WWLWWWWLWWWWLWWWWWWL WWWWWLWWWWWLWWWWWLWW WWLWWWWWLWLWWLWLLWWL WWLLLWWWLWLWWLWWWWWW WWWWWWLLWLWWLWWLWWLW WWLWLWWLWWLWWWWLWWWL LLWWWWLLLWWWLWWWLLWW LWWWWWLLWWWWLWLWWWWW WWWWLLWWWWWWWLWWLWLW WLLWWLLWLWLLWWLLWWWW LWWLLLLWLWWWLLWWWLWL WWWWWWWLWWLLLWWLWWLW WLWWWLLLWWWLWWWWLLLL WWWWWWWWWLLLWLWLWWLW WLWWWLWWWWLWWWWWWWWL WWLWWWWWWWLLWWLWWWLW WLWLWWWWLWWWWLWLWWWL WWLWLLLLWWWLWWWWWWWL WWWWWWWWLWWWWLWLWWLL LLWWWWLWWLWLLLWWWWLW WLWWWWLWLWLWWWWWWLWL WWWWLWWWWWWWLLWWLLWW LLLWLWWWWLLLLWWLWLLL WWLWWWWLWWWWWWWLLWWL WWWLWWWLWWWWWWWLLLWW WLWWWLWWWWWLWWLLWLLW WWWWWWWWLLWLLWLWWWLW WWLWWWLLWWWWLWWWWWLW WWWWWWWLWWWLLWWWWWWL WLLWLWWWLLWLWLWWWWWL WWLLWWWWWWWWWLLWLLWW LWLLWLWLLWWWLWLWLLWW WWLWWWWWLLLWLWWWWWWL WLWLWWLWLLLWLLLWWWWL WWWWWLWLLWWLLWLWLWLW LWLLLWWLLWLWWWWWWWWW WWWLLWWWWLWWWWLLWLWL WLWLWWWLWWWLLWWLWLLW WWWWWWWWLLWWLWWLLLWW LWWWLWWWWWWWLWLWWWWW WWLWLLWWWLWWLLWLLLWL WLWWWLLWWWWLLWWLWWWL LWWWLWLWLWWWWWWLWWWW WWWWWLLWWLWWLLLWWWWW LWWLLWWWWWLWWLWWWLLW WLWWWWWWWLLWLLWLWLWW LLWWLWWWLWLLLWLLWWWW WWLLWWLWWWWLWWLWLWWL LLWLWLWWWWWLLWWWLLLW LLLLWWWLLLWLWWWWLWLW WWWWWWLLWLWLWLWWWWWL LWLWWWLWLWLWWWWWLLWW LWLWWWWWWLWWWWWWLWLL LLLWWWWLWLWWLWWWWLLW WLLWWLWLLWWWLWLLWLLW WWWLWWLWLLWWLWLWWWWW WWWWWWLLWWLLWWLLLLWW WWLLLWWLLWWWWWWLWWWW WWWWLLWWWLWWWLWWWLLW WLLLLLWWLWLLWWWWWWWW WWLWWWWWLWWLWWWWWWWW WLWWWWLWLWLWLLWWWLLW WWWWWWLWWWWLWLWWWLLW WWWWWWWWWWWWLWWLWLWL WWLLWWWLWWWWWLWLWWWW WLWWLWWWLWLLWWLWWWLL WLWWWWLWLWWWWLWWLWWW WLWWLLWWWWWLWWWLWWWW LWWLWWWLLWLLWWWLLLLL LWLLLWWWWWLLWWWWWLLL LWWLWWWLWLWLWWLWWWWL WLWWWWWLLWLWWWWWWWWW WWWWWLWLWWWWLLLWLWWL WLWWLLWWLWLWWLLWLWLW WLLWLLLWWLWWLLWLWWLW WLWWLWWWWWWLWWWLLWWW LLWLWWLWWWLLWLWWWWWW WLLLWWWWLWLWWWWWWLWL WWLWWWWLWLWWLLWLWLWW WLWLLLWWLWLWWLLWWWWL WWWWWWWLWWLWWWWWLWWW WWWWWWLWLWWLWWWLWWWL WWLLWWLLWWLWWLWWLLLW WLWWLWWWLWLWWLWWWWWW WWLWLLWLLWWWLWLWWWWW WWLWLLWWWLWWLWWWWWLW LWLWWLLWWWWWWLWWWWLL WWWLWLLLWLLWLWWWWWWW WWWWWWLWWWLWLWWWWLLW WLLWLLWLLLWWWWWWWWWL WLWWLWWLLLWLWLWWWLWL LWWLWLWWWWWWWWLLWWWL WWWWWWWWLWWWWLWWWWWL WWWWLWLWWWWWWWLWLLWW WWLWWLLWLWLLWLWLWWWW WWLWLWLWWLWLLLLWWLWW WLWWWWWWLWLWWWWWLWLW WWLWLWWWWLLWLWWWLWWL WWWWLWWLWLLWLWWWLWWW LWWLWWLWLWWLWLWWWWWW E

输出: P1042_2.out 11:3 11:2 11:2 11:4 11:9 11:0 11:7 11:4 11:9 11:4 11:3 11:5 11:8 11:9 11:6 11:5 11:8 11:4 11:3 11:3 11:4 11:9 11:1 11:7 11:6 11:4 11:3 11:8 12:10 11:4 11:4 11:3 11:6 11:7 11:2 11:3 11:8 11:3 12:10 11:5 11:7 11:8 9:11 11:4 11:3 11:7 11:5 11:8 11:2 11:9 11:7 11:5 11:1 11:7 11:6 11:6 12:10 11:4 11:9 7:11 11:2 11:8 11:5 11:3 11:9 11:7 11:9 11:2 9:11 11:3 11:3 8:11 11:1 11:2 11:4 11:5 11:4 11:1 11:6 11:4 11:7 11:4 11:4 11:7 8:11 11:6 11:5 11:3 11:2 16:18 11:7 11:4 11:7 11:5 11:3 14:12 11:3 11:3 11:3 11:7 11:8 11:4 11:4 11:5 11:6 11:9 11:0 11:7 11:6 12:10 11:4 11:2 11:2 11:5 11:8 11:9 11:3 11:4 11:5 11:7 11:5 2:0

21:4 21:6 21:10 21:10 21:11 21:6 21:18 21:11 21:13 21:6 21:7 21:10 21:12 21:8 21:17 21:6 21:10 21:9 21:5 21:11 21:15 21:15 21:15 21:10 21:12 21:6 21:16 21:9 21:8 21:15 21:13 21:17 21:11 21:10 21:17 21:12 21:7 21:11 21:8 21:7 21:7 21:11 21:8 21:16 21:13 21:5 22:20 21:12 21:9 21:14 21:7 21:7 21:12 21:11 21:9 21:8 21:13 21:13 21:4 21:13 21:10 21:10 21:11 7:2


by chenjianyyzz @ 2024-08-14 09:59:47

下面是测试点的输入输出,求答疑 输入: ```P1042_2.in WWLWWWWLWWWWLWWWWWWL WWWWWLWWWWWLWWWWWLWW WWLWWWWWLWLWWLWLLWWL WWLLLWWWLWLWWLWWWWWW WWWWWWLLWLWWLWWLWWLW WWLWLWWLWWLWWWWLWWWL LLWWWWLLLWWWLWWWLLWW LWWWWWLLWWWWLWLWWWWW WWWWLLWWWWWWWLWWLWLW WLLWWLLWLWLLWWLLWWWW LWWLLLLWLWWWLLWWWLWL WWWWWWWLWWLLLWWLWWLW WLWWWLLLWWWLWWWWLLLL WWWWWWWWWLLLWLWLWWLW WLWWWLWWWWLWWWWWWWWL WWLWWWWWWWLLWWLWWWLW WLWLWWWWLWWWWLWLWWWL WWLWLLLLWWWLWWWWWWWL WWWWWWWWLWWWWLWLWWLL LLWWWWLWWLWLLLWWWWLW WLWWWWLWLWLWWWWWWLWL WWWWLWWWWWWWLLWWLLWW LLLWLWWWWLLLLWWLWLLL WWLWWWWLWWWWWWWLLWWL WWWLWWWLWWWWWWWLLLWW WLWWWLWWWWWLWWLLWLLW WWWWWWWWLLWLLWLWWWLW WWLWWWLLWWWWLWWWWWLW WWWWWWWLWWWLLWWWWWWL WLLWLWWWLLWLWLWWWWWL WWLLWWWWWWWWWLLWLLWW LWLLWLWLLWWWLWLWLLWW WWLWWWWWLLLWLWWWWWWL WLWLWWLWLLLWLLLWWWWL WWWWWLWLLWWLLWLWLWLW LWLLLWWLLWLWWWWWWWWW WWWLLWWWWLWWWWLLWLWL WLWLWWWLWWWLLWWLWLLW WWWWWWWWLLWWLWWLLLWW LWWWLWWWWWWWLWLWWWWW WWLWLLWWWLWWLLWLLLWL WLWWWLLWWWWLLWWLWWWL LWWWLWLWLWWWWWWLWWWW WWWWWLLWWLWWLLLWWWWW LWWLLWWWWWLWWLWWWLLW WLWWWWWWWLLWLLWLWLWW LLWWLWWWLWLLLWLLWWWW WWLLWWLWWWWLWWLWLWWL LLWLWLWWWWWLLWWWLLLW LLLLWWWLLLWLWWWWLWLW WWWWWWLLWLWLWLWWWWWL LWLWWWLWLWLWWWWWLLWW LWLWWWWWWLWWWWWWLWLL LLLWWWWLWLWWLWWWWLLW WLLWWLWLLWWWLWLLWLLW WWWLWWLWLLWWLWLWWWWW WWWWWWLLWWLLWWLLLLWW WWLLLWWLLWWWWWWLWWWW WWWWLLWWWLWWWLWWWLLW WLLLLLWWLWLLWWWWWWWW WWLWWWWWLWWLWWWWWWWW WLWWWWLWLWLWLLWWWLLW WWWWWWLWWWWLWLWWWLLW WWWWWWWWWWWWLWWLWLWL WWLLWWWLWWWWWLWLWWWW WLWWLWWWLWLLWWLWWWLL WLWWWWLWLWWWWLWWLWWW WLWWLLWWWWWLWWWLWWWW LWWLWWWLLWLLWWWLLLLL LWLLLWWWWWLLWWWWWLLL LWWLWWWLWLWLWWLWWWWL WLWWWWWLLWLWWWWWWWWW WWWWWLWLWWWWLLLWLWWL WLWWLLWWLWLWWLLWLWLW WLLWLLLWWLWWLLWLWWLW WLWWLWWWWWWLWWWLLWWW LLWLWWLWWWLLWLWWWWWW WLLLWWWWLWLWWWWWWLWL WWLWWWWLWLWWLLWLWLWW WLWLLLWWLWLWWLLWWWWL WWWWWWWLWWLWWWWWLWWW WWWWWWLWLWWLWWWLWWWL WWLLWWLLWWLWWLWWLLLW WLWWLWWWLWLWWLWWWWWW WWLWLLWLLWWWLWLWWWWW WWLWLLWWWLWWLWWWWWLW LWLWWLLWWWWWWLWWWWLL WWWLWLLLWLLWLWWWWWWW WWWWWWLWWWLWLWWWWLLW WLLWLLWLLLWWWWWWWWWL WLWWLWWLLLWLWLWWWLWL LWWLWLWWWWWWWWLLWWWL WWWWWWWWLWWWWLWWWWWL WWWWLWLWWWWWWWLWLLWW WWLWWLLWLWLLWLWLWWWW WWLWLWLWWLWLLLLWWLWW WLWWWWWWLWLWWWWWLWLW WWLWLWWWWLLWLWWWLWWL WWWWLWWLWLLWLWWWLWWW LWWLWWLWLWWLWLWWWWWW E

P1042_2.out 11:3 11:2 11:2 11:4 11:9 11:0 11:7 11:4 11:9 11:4 11:3 11:5 11:8 11:9 11:6 11:5 11:8 11:4 11:3 11:3 11:4 11:9 11:1 11:7 11:6 11:4 11:3 11:8 12:10 11:4 11:4 11:3 11:6 11:7 11:2 11:3 11:8 11:3 12:10 11:5 11:7 11:8 9:11 11:4 11:3 11:7 11:5 11:8 11:2 11:9 11:7 11:5 11:1 11:7 11:6 11:6 12:10 11:4 11:9 7:11 11:2 11:8 11:5 11:3 11:9 11:7 11:9 11:2 9:11 11:3 11:3 8:11 11:1 11:2 11:4 11:5 11:4 11:1 11:6 11:4 11:7 11:4 11:4 11:7 8:11 11:6 11:5 11:3 11:2 16:18 11:7 11:4 11:7 11:5 11:3 14:12 11:3 11:3 11:3 11:7 11:8 11:4 11:4 11:5 11:6 11:9 11:0 11:7 11:6 12:10 11:4 11:2 11:2 11:5 11:8 11:9 11:3 11:4 11:5 11:7 11:5 2:0

21:4 21:6 21:10 21:10 21:11 21:6 21:18 21:11 21:13 21:6 21:7 21:10 21:12 21:8 21:17 21:6 21:10 21:9 21:5 21:11 21:15 21:15 21:15 21:10 21:12 21:6 21:16 21:9 21:8 21:15 21:13 21:17 21:11 21:10 21:17 21:12 21:7 21:11 21:8 21:7 21:7 21:11 21:8 21:16 21:13 21:5 22:20 21:12 21:9 21:14 21:7 21:7 21:12 21:11 21:9 21:8 21:13 21:13 21:4 21:13 21:10 21:10 21:11 7:2


by Finner_forgeter @ 2024-08-14 10:00:44

@chenjianyyzz 把你代码里的变量名加下注释,谢谢


by Finner_forgeter @ 2024-08-14 10:06:15

@chenjianyyzz 你break的是整个循环,然后这个不需要循环2500次,在getline里加一个'E',就可以省略所有关于E的代码,然后我不理解为什么要让cnt11,cnt21--,输出没有问题


by Finner_forgeter @ 2024-08-14 10:13:57

@chenjianyyzz else if里谢s[j]=='L',不是s[j]='L'


by Finner_forgeter @ 2024-08-14 10:16:02

#include <bits/stdc++.h>
using namespace std;
int score11[6000][3]={0}, score21[6000][3]={0};
int cnt11=1, cnt21=1;
char s[100005];
int main(){
    cin.getline(s,100005,'E'); 
    for (int j=0; j<strlen(s); j++){
        if (s[j]=='W'){
            score11[cnt11][1]++; 
            score21[cnt21][1]++;
        }else if(s[j]=='L'){
            score11[cnt11][2]++; 
            score21[cnt21][2]++;
        };       
        if ((score11[cnt11][1]>=11 || score11[cnt11][2]>=11) && (abs(score11[cnt11][1]-score11[cnt11][2])>=2))
            cnt11++;
        if ((score21[cnt21][1]>=21 || score21[cnt21][2]>=21) && (abs(score21[cnt21][1]-score21[cnt21][2])>=2))
            cnt21++;    
    }
    if (cnt11>1)
        if (score11[cnt11][1]==0 && score11[cnt11][2]==0) cnt11--;
    if (cnt21>1)
        if (score21[cnt21][1]==0 && score21[cnt21][2]==0) cnt21--;  
    for (int i=1; i<=cnt11; i++)
        cout << score11[i][1]<<":"<<score11[i][2]<<endl;
    cout << endl;
    for (int i=1; i<=cnt21; i++)
        cout << score21[i][1]<<":"<<score21[i][2]<<endl;
    return 0;
 } 

这是改完的代码,但只有90ptsQAQ,人家作者都说了事实上有一个点有2501行QAQ


| 下一页