社区讨论

30分求调(尽量从我源代码上改,谢谢)

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

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@m2hisdnh
此快照首次捕获于
2024/10/20 19:44
去年
此快照最后确认于
2025/11/04 16:41
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
char a[3000];
int main()
{
	
	int t=0,l=0;
	do
	{
		cin>>a[t];t++;//输入并记录字符个数 
	}
	while(a[t-1]!='E');
	int b11h=0,b11d=0,b21d=0,b21h=0,c11,c21;
	if(t%11!=0) c11=t/11+1;
	else c11=t/11;//c11:11赛制比赛次数 
	if(t%21!=0) c21=t/21+1;
	else c21=t/21;//21赛制次数 
	int s=0;
	for(int i=1;i<=c11;i++)
	{
		b11h=0;b11d=0;//每次分数归零 
		s+=11;
		if(s>t)
		s=t;//每次结束字符位 
		for(int j=l;j<s;j++)
		{
			if(a[j]=='W') b11h++;//11赛制下每次华赢的比方 
			if(a[j]=='L') b11d++;//对手赢得比分 
		}
		l+=11;
		if(l>t) l=t-(l-11);//下次开始字符位 
		//cout<<l<<" "<<s<<" ";
		cout<<b11h<<":"<<b11d<<"\n";
	}
	s=0,l=0;
	cout<<"\n";
	for(int i=1;i<=c21;i++)//21赛制下的,与上述一样 
	{
		b21h=0;b21d=0;
		s+=21;
		if(s>t)
		s=t;
		for(int j=l;j<s;j++)
		{
			if(a[j]=='W') b21h++;
			if(a[j]=='L') b21d++;
		}
		l+=21;
		if(l>t) l=t-(l-21);
		cout<<b21h<<":"<<b21d<<"\n";
	}
	return 0;
}

回复

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

正在加载回复...