社区讨论

神奇的2~9测例WA,求dalao解释~~

P1042[NOIP 2003 普及组] 乒乓球参与者 9已保存回复 13

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
13 条
当前快照
1 份
快照标识符
@mi7utwis
此快照首次捕获于
2025/11/21 03:58
4 个月前
此快照最后确认于
2025/11/21 04:05
4 个月前
查看原帖
我对模拟题产生了心理阴影
我真的佛了。orz
一直WA2~9测例。下下来测例的结果也完全一致。
else后面加上else if(str[i] == 'L') 突然就过辣:
C
//原来是
if(str[i] == 'W') le++;
else ri++;
//改为
if(str[i] == 'W') le++;
else if(str[i] == 'L') ri++;
我明明都过滤了所有的\n,难道字符串里面除了W和L还能是别的???然而当我单独验证的时候,除了字符串里面确实只有W和L。。
最后附上AC代码。。
C
//AC代码
#include <bits/stdc++.h>
using namespace std;

int main(){
	char c;
	char str[1000005];
	int index = 0;
    while((c=getchar()) != 'E'){
    	if(c == '\n') continue;
    	str[index++] = c;
    }
    
    int le = 0, ri = 0;
	for(int i = 0; i < index; i++){  //11分制 
	    if(str[i] == 'W') le++;
	    else if(str[i] == 'L') ri++;
	    
	    if(( le>=11 || ri>=11 ) && abs(le-ri)>=2 ){
    		cout<<le<<":"<<ri<<endl; le = ri = 0;
    	}	
	}
	cout<<le<<":"<<ri<<endl<<endl; le = ri = 0;
	for(int i = 0; i < index; i++){  //21分制 
	    if(str[i] == 'W') le++;
	    else if(str[i] == 'L') ri++;
	    
	    if(( le>=21 || ri>=21 ) && abs(le-ri)>=2 ){
    		cout<<le<<":"<<ri<<endl; le = ri = 0;
    	}
	}
	cout<<le<<":"<<ri<<endl;

    return 0;
}
什!么!鬼!
求助各位dalao!!!

回复

13 条回复,欢迎继续交流。

正在加载回复...