【c++】高精度算法(洛谷刷题2024)乒乓球详解

系列文章目录

第一题 乒乓球


视频:http://【洛谷题单 - 算法 - 高精度】https://www.bilibili.com/video/BV1Ym4y1s7BD?vd_source=66a11ab493493f42b08b31246a932bbb

目录

系列文章目录

[第一题 乒乓球](#第一题 乒乓球)

前言

一、题目以及引领思考

二、题解与代码

1.输入输出案例

2.代码及解析

总结


前言

本题运用到了高精度算法,具体体现在记录乒乓赛输赢时有无数场,我们把每一场都记录在数组中,而不是简单的一两场


提示:以下是本篇文章正文内容,下面案例可供参考

一、题目以及引领思考

|--------------|--------------------------------------------------------------------------------------|
| ①差值 | 正规乒乓球比赛,不仅分数要大于11(或21),两者分数相差也要大于2。如果比赛分数达到11-10,比赛会继续。直到一个人比另外一个人多两分。(如13-11) |
| ②思想 | 与埃筛法比较相似,只看其中一队,那另一队的胜利就代表我们所看重的那一对的失败,我们用1表示胜利的场,用2表示失败的场,存在数组里,然后用一个数进行统计数组中1,2的个数 |
| 误区 | 这个题还有一个重点就是记录分数时除了与胜利场数有关外,还与胜利顺序有关 |
[思路解析]

二、题解与代码

1.输入输出案例

输入:

cpp 复制代码
WWWWWWWWWWWWWWWWWWWW
WWLWE

输出:

cpp 复制代码
11:0
11:0
1:1

21:0
2:1

2.代码及解析

代码如下(示例):

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int a[1000000];
int  x,y;//记录输赢场数 
int main()
{
	char s;
	for(int i=1;cin>>s&&s!='E';i++)//读入每场的输赢 ,s起中间作用 
	{
		if(s=='W')a[i]=1;//赢的场记为1 
		else a[i]=2; //输的场记为2 
	}
	
//11进制如下: 
	
for(int i=1;1;i++)
{
	if(a[i]==1)x++;
	if(a[i]==2)y++;
	if(a[i]==0)//此时所有场次已经统计完,输出最后一次的记录结果 
	{
		cout<<x<<":"<<y<<endl<<endl;
	break;
	}
	if(x-y>=2||y-x>=2)//是否存在2的差值 
	if(x>=11||y>=11){//是否为11制 
	cout<<x<<":"<<y<<endl;	
		x=0;//清零,下一回合 
			y=0;}
}
x=0;//清零,方便21制计算 
y=0;

//21进制如下: 
for(int i=1;1;i++)
{
	if(a[i]==1)x++;
	if(a[i]==2)y++;
	if(a[i]==0)
	{
		cout<<x<<":"<<y<<endl;
	break;
	}
	if(x-y>=2||y-x>=2)
	if(x>=21||y>=21)
{	cout<<x<<":"<<y<<endl;
		x=0;
			y=0;	
}
}
return 0;	

}

总结

以上就是今天要讲的内容,本文介绍了洛谷中高精度算法的第一题,希望对您有所帮助~

相关推荐
shinelord明6 分钟前
【Python】Python知识总结浅析
开发语言·人工智能·python
吹老师个人app编程教学10 分钟前
阿里巴巴_java开发规范手册详解
java·开发语言
爱叨叨的小嘟18 分钟前
windows配置C++编译环境和VScode C++配置(保姆级教程)
c++·windows·vscode
初阳78530 分钟前
【Qt】控件概述(4)—— 输出类控件
开发语言·qt·命令模式
大白_dev33 分钟前
数据校验的总结
java·开发语言
雷神乐乐37 分钟前
Python常用函数
开发语言·python
失落的香蕉40 分钟前
Java第二阶段---10方法带参---第三节 面向对象和面向过程的区别
java·开发语言
安冬的码畜日常1 小时前
【玩转 JS 函数式编程_008】3.1.2 JavaScript 函数式编程筑基之:箭头函数——一种更流行的写法
开发语言·javascript·ecmascript·es6·this·箭头函数
只会掉头发的程序猿1 小时前
在QT中将Widget提升为自定义的Widget后,无法设置Widget的背景颜色问题解决方法
开发语言·qt
瞌睡不来2 小时前
(刷题记录5)盛最多水的容器
c++·笔记·学习·题目记录