洛谷P1042题解

第一篇博客先拿这篇水一下

我的方法其实主要是优化了luogu里面两个高赞题解,第一个的缺点在于没有计数器,也导致了ta在处理那种“残局”–就是那种结尾前面不是11分制也不是21分制的比分,用的是

if(win[i]==0){cout<<w<<":"<<l<<endl<<endl;break;}

而第二个的缺点在于=11/21和>=11/21的情况没有合并,导致不必要的分类讨论;

ACcode:

#include<bits/stdc++.h>
using namespace std;
char ch,c[62505];
int w,l,cnt;
int main()
{
    while(cin>>ch)
    {
       if(ch=='E')
       break;
       else c[++cnt]=ch;
    }
    for(int i=1;i<=cnt;i++)
    {
        if(c[i]=='W') w++;
        if(c[i]=='L') l++;
        if(abs(w-l)>=2)//分差大于等于2
        {
         if(w>=11||l>=11)//一方分数大于等于11
        	{
        	  cout<<w<<":"<<l<<endl;
        	  w=0;l=0;
        	}  
        } 
    }
    cout<<w<<":"<<l<<endl<<endl;
    w=0;l=0;
    for(int i=1;i<=cnt;i++)
    {
        if(c[i]=='W') w++;
        if(c[i]=='L') l++;
        if(abs(w-l)>=2)//分差大于等于2
        {
         if(w>=21||l>=21)//一方分数大于等于21
         	{
         	 cout<<w<<":"<<l<<endl;
         	 w=0;l=0;
        	 }  
        }
    }
     cout<<w<<":"<<l;
     system("pause");
     return 0;
}

文章作者: zhengye
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 zhengye !
  目录