【做题笔记】P1042 乒乓球
坑 #1:输入有若干行,但处理的时候要看成一个整体的信息。比如说第一行最后一局比分是 2:1 ,这时不算比完,这个比分要继承到第二行的信息中继续处理。
坑 #2:一局结束,当且仅当其中一方比分大于等于11 分且双方比分分数之差大于等于 2 。注意这是乒乓球常识而不是 OI 常识,题面中最后一句话提到了这个问题,不过不够明显。
坑 #3:两种不同的分数制度输出之间要换行。
坑 #4:在 Windows 环境下,我们判断是否读完,直接写while(cin>>s),运行时先换行,再按 Ctrl+Z,再换行就可以出结果了。
其他:注意代码细节。思路理清后大概十几分钟就能写完了。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
string s;
int a[2000009],b[2000009];
//a数组记录华华某一句某时刻是否有分,b数组记录华华对手
int main()
{
int n=0;
while(cin>>s)
{
for(int i=0;i<s.length();i++)
if(s[i]=='E')break;
else
if(s[i]=='W')a[++n]=1;
else b[++n]=1;
//这里n不用清零,直接将所有输入作为整体
}
int answ=0,ansl=0;
for(int i=1;i<=n;i++)
{
if(a[i])answ++;
if(b[i])ansl++;
if(answ>=11||ansl>=11)
{
if(abs(answ-ansl)>=2)
{
cout<<answ<<':'<<ansl<<endl;
answ=0,ansl=0; //一局结束后分数归零
}
}
}
cout<<answ<<':'<<ansl<<endl;
cout<<endl; //换行!!!
answ=0,ansl=0;
for(int i=1;i<=n;i++)
{
if(a[i])answ++;
if(b[i])ansl++;
if(answ>=21||ansl>=21)
{
if(abs(answ-ansl)>=2)
{
cout<<answ<<':'<<ansl<<endl;
answ=0,ansl=0;
}
}
}
cout<<answ<<':'<<ansl<<endl;
return 0;
}
【做题笔记】P1042 乒乓球的更多相关文章
- C语言程序设计做题笔记之C语言基础知识(下)
C 语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行 事.并且C是相当灵活的,用于执行计算机程序能完成的 ...
- C语言程序设计做题笔记之C语言基础知识(上)
C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行事.并且C是相当灵活的,用于执行计算机程序能完成的几乎 ...
- SDOI2017 R1做题笔记
SDOI2017 R1做题笔记 梦想还是要有的,万一哪天就做完了呢? 也就是说现在还没做完. 哈哈哈我竟然做完了-2019.3.29 20:30
- SDOI2014 R1做题笔记
SDOI2014 R1做题笔记 经过很久很久的时间,shzr又做完了SDOI2014一轮的题目. 但是我不想写做题笔记(
- SDOI2016 R1做题笔记
SDOI2016 R1做题笔记 经过很久很久的时间,shzr终于做完了SDOI2016一轮的题目. 其实没想到竟然是2016年的题目先做完,因为14年的六个题很早就做了四个了,但是后两个有点开不动.. ...
- LCT做题笔记
最近几天打算认真复习LCT,毕竟以前只会板子.正好也可以学点新的用法,这里就用来写做题笔记吧.这个分类比较混乱,主要看感觉,不一定对: 维护森林的LCT 就是最普通,最一般那种的LCT啦.这类题目往往 ...
- java做题笔记
java做题笔记 1. 初始化过程是这样的: 1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化: 2.然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序 ...
- SAM 做题笔记(各种技巧,持续更新,SA)
SAM 感性瞎扯. 这里是 SAM 做题笔记. 本来是在一篇随笔里面,然后 Latex 太多加载不过来就分成了两篇. 标 * 的是推荐一做的题目. trick 是我总结的技巧. I. P3804 [模 ...
- PKUWC/SC 做题笔记
去年不知道干了些啥,什么省选/营题都没做. 现在赶应该还来得及(?) 「PKUWC2018」Minimax Done 2019.12.04 9:38:55 线段树合并船新玩法??? \(O(n^2)\ ...
- POI做题笔记
POI2011 Conspiracy (2-SAT) Description \(n\leq 5000\) Solution 发现可拆点然后使用2-SAT做,由于特殊的关系,可以证明每次只能交换两个集 ...
随机推荐
- 服务&软件&基础设施的区别
IT基础设施: 软件 硬件 数据库相关DBM 网络相关 networking(网络通信) 以上4个会出现的比较多 application people 上面的东西都能提供IT服务 一半的互联网公司都会 ...
- archlinux install.txt
++++++ 注意事项+++ +++++++++++++++++++++++++++ 强烈建议新手移步 Arch Wiki > 新手指南 经验者请参阅 Arch Wiki > 安装指南 若 ...
- C++-蓝桥杯-矩阵乘法[快速幂]
忘了改矩阵的大小居然还有33分,我醉了 #include <cstdio> ; struct Matrix{int a[N][N];}; int n,m; Matrix A,O,I; Ma ...
- [SUCTF 2019]EasySQL(堆叠注入配合sql_mode)
考点:1.堆叠注入 2.set sql_mode=PIPES_AS_CONCAT;将||视为字符串的连接操作符而非或运算符 意外:注入* 复现: 1;set sql_mode=PIPES_AS_CON ...
- Tomcat的使⽤
准备 1.官⽹地址:http://tomcat.apache.org下载. 2.解压文件,并放到指定路径,给该文件授权. chmod -R 755 3.启动和停止 进入到/Users/lucas/Do ...
- python求极值点(波峰波谷)
python求极值点主要用到scipy库. 1. 首先可先选择一个函数或者拟合一个函数,这里选择拟合数据:np.polyfit import pandas as pd import matplotli ...
- vue老项目升级vue-cli3.0
第一步我们卸载全局的vue2.0然后: 打开命令行 输入npm install -g @vue/cli-init 这个就是会安装全局的vue3.0版本.安装好之后我们也可以vue -V查看当前vu ...
- NG-ALAIN 边学边记1
在文件夹下右键启动powerShell ng new my-project --skip-npm cd my-project ng add ng-alainnpm installng serve np ...
- Django_发邮件
1. 设置项
- K-NN graph
tasks: 1. unsupervised knn https://scikit-learn.org/stable/modules/neighbors.html#unsupervised-neigh ...