P1042乒乓球(洛谷试炼场解题报告-交叉模拟)

洛谷试炼场解题报告-P1042乒乓球
难度:普及-
题目链接(https://www.luogu.org/problemnew/show/P1042)

#include
#include
#include
#include
#include
#include
#include
int ans1[50000][2]={0},ans2[50000][2]={0};
using namespace std;
int main(){
    //freopen("in.txt","r",stdin);//文件输入输出
    //freopen("out.txt","w",stdout);
    char ch;
    int n1=0,n2=0;
    while(cin>>ch){
        
    if(ch=='W'){//这里看似多,其实只用写一部分,其它复制粘贴即可
    	ans1[n1][0]++;
    	ans2[n2][0]++;
    	if((ans1[n1][0]>=11 || ans1[n1][1]>=11)&& abs(ans1[n1][0]-ans1[n1][1])>1){
    		n1++;
            }
            if((ans2[n2][0]>=21 || ans2[n2][1]>=21)&& abs(ans2[n2][0]-ans2[n2][1])>1){
    		n2++;
            }
        }
        if(ch=='L'){
            ans1[n1][1]++;
            ans2[n2][1]++;
            if((ans1[n1][0]>=11 || ans1[n1][1]>=11)&& abs(ans1[n1][0]-ans1[n1][1])>1){
    		n1++;
            }
            if((ans2[n2][0]>=21 || ans2[n2][1]>=21)&& abs(ans2[n2][0]-ans2[n2][1])>1){
    		n2++;
            }
        }
        if(ch=='E'){
            //if(ans1[n1][0] || ans1[n1][1]) n1++;//注意输出的坑,这里注释掉的是我之前错的部分,其实这道题只要一组比赛结束了,那么即使下一组比赛一个球都没打,都要输出0:0 所以直接让n1,n2加一下就行。
            //if(ans2[n2][0] || ans2[n2][1]) n2++;
            //if(!n1 && !n2){
                n1++;
                n2++;
            //}
            break;
        }
    }
    for(int i=0;i

你可能感兴趣的:(模拟)