1.什么是模拟
在信息奥赛中,有一类问题是模拟一个游戏的对弈过程或者模拟一项任务的操作过程.比如乒乓球在比赛中模拟统计记分最终判断输赢的过程等等,这些问题通常很难通过建立数学模型用特定的算法来解决因为它没有一种固定的解法,需要深刻理解出题者对过程的解释一般只能采用模拟法.
用模拟法解题必须关注以下几个问题
1.仔细审题深刻剖析出题者设置的游戏规则
2.全面分析尽可能想的所有特殊边界情况.
3.认真编程,运行测试的过程要到位
2.一些练习
一个比较典型的案例:
图形旋转翻转变换
题目描述
有一天,一只蚂蚱像往常一样在草地上愉快地跳跃,它发现了一条写满了英文字母的纸带.
蚂蚱只能在元音字母(A,E,I,O,U,Y)间跳跃,一次跳跃所需的能量是两个位置的差,纸带所需要的能量指为蚂蚱从纸在开头的前一个位置根据规则跳到纸带结尾后一个位置中能力最大值.
蚂蚱想知道跳跃纸带所需的能量值是多少.
在图片里我们可以知道,能量值是四
输入格式
一行,一个字符串,字符串长度不超过一百.
字符串就是纸条上写的英文字母
输出格式
一行,一个整数,代表能量值.
输入和输出样例看图片(上图)
代码
代码很简单,循环判断输入的字符串如果是元音的话,定义个t记录top和i+1号位