前言:
所谓的模拟题,运用的“模拟算法”,其实并没有什么完全准确的定义。模拟算法,用一句老话说,就是“照着葫芦画瓢”;官方化的诠释则是:根据题目表述进行筛选提取关键要素,按需求书写代码解决实际问题。
模拟这个算法其实并不难,主要是逻辑上的麻烦,但正常刷题时我们都不把模拟的逻辑思维理清就直接做,如果这题没有太水的话,是非常容易错的。
核心操作:应该边阅读边将有关的条件一条条地记录下来,阅读完成后要反复核对,先在草稿纸上将流程模拟一遍再动手写代码!!千万别贪快!!
目录
P2670 [NOIP2015 普及组] 扫雷游戏 - 规则
P1563 [NOIP2016 提高组] 玩具谜题 - 记录
P1042 [NOIP2003 普及组] 乒乓球 - 细节
输入输出样例
输入
WWWWWWWWWWWWWWWWWWWW
WWLWE
输出
11:0
11:0
1:1
21:0
2:1
说明/提示
每行至多 25 个字母,最多有 2500 行。
(注:事实上有一个测试点有 2501 行数据。)
坑点 细节点:
- 玩过乒乓球大部分人都知道,正规乒乓球比赛,不仅分数要大于11(或21),两者分数相差也要大于2。如果比赛分数达到11-10,比赛会继续。直到一个人比另外一个人多两分。(如13-11)
- 没有最后一局也要输出,即0:0情况也要输出;
- 字符数组大小(最坏情况25*2501),至少开char s[62525];
AC代码:(分快,好写不易错)
#include<bits/stdc++.h>
using namespace std;
int a,b;
char ch;
c