P1042 [NOIP 2003 普及组] 乒乓球

#include<bits/stdc++.h>
using namespace std;
string s;
void solve(int num,string s)
{
int a=0;//比分a
int b=0;//比分b
for(char c:s)
{
if(c=='W') a++;
if(c=='L') b++;
if(max(a,b)>=num&&abs(a-b)>=2)
{
cout<<a<<":"<<b<<endl;
a=0;
b=0;
}
}
cout<<a<<":"<<b<<endl;
return;
}
int main()
{
char c;//一个一个输入字符
while(cin>>c)
{
if(c=='E') break;
s+=c;
}
//分别针对两个分值11,22,建立解决方法solve
solve(11,s);
cout<<endl;
solve(21,s);
return 0;
}
模拟:
根据题目要求,我们需要在11分和21分制下统计每一局获胜的比分,获胜的条件是有一方达到11或22分,并且分差大于等于2。所以我建立了一个solve方法分别解决11,21两个分值的情况。参数是分值和字符串。
if(max(a,b)>=num&&abs(a-b)>=2)
{
cout<<a<<":"<<b<<endl;
a=0;
b=0;
}
核心
注意,比分的初始化