【心得体会】模拟法

本文分享了作者对模拟法在解题中的心得,通过两个例题——逃跑的蠕虫(青蛙爬井类问题)和电影节,详细阐述了如何运用模拟法解决问题,包括蠕虫爬出瓶子的时间计算和电影节中最多能看多少部电影的问题,强调了模拟法的简单直观,适合处理有一定规则且数据规模允许的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要说到我个人最喜欢的几种解题方法,那模拟法肯定是其中之一

因为模拟法很简单,很无脑。不用想题想的浑身难受,只需要按照题目要求设定好规则,然后就撒手不管了。就像遗传算法只需要设定好“遗传变异”、“优胜劣汰”的规则,然后怎么进化都是程序的事儿,我们吃瓜就行了

有两种题可能会用到模拟法,一种是很直观的直接告诉你一堆规则 ,然后疯狂暗示就怕你不模拟 的,另一种是藏得比较深而且你不用模拟法也能做的(换句话说就是可以用模拟法偷懒而已)这里举几个典型的例子


例题一:逃跑的蠕虫(青蛙爬井类问题)(很明显可以用模拟法的一类)

题目链接:http://acm.swust.edu.cn/#/problems/281/374?_k=wwkqhs

题目:
装在瓶子的蠕虫都想从瓶子底部向瓶口处爬出去。它每分钟向上爬行u厘米,之后会休息一分钟,这一分钟它会向下滑行d厘米,当蠕虫到了瓶口或者超出瓶口后便出了瓶口,成功逃离(每分钟计算一次位置)。编写一个函数,帮助蠕虫计算它在什么时候能够爬出瓶子。

输入:
连续输入多个的实例,每一个实例输入三个正整数分别代表n,u和d,其中d < n ,n < 1000,当输入三个0时表明输入停止。

输出:
针对每一个输入实例,计算蠕虫跑出瓶子的时间。

样例输入:

10 2 1
20 3 1
0 0 0

样例输出:

17
19

分析:这题小学生都知道有个坑,但是由于我们懒,所以管他有啥坑哦,只要不T,模拟走起!首先分析,虫有两个动作,一是向上爬,二是向下掉,每个动作分别花1分钟的时间。那好,我就以时间为单位,一分钟一分钟的让程序去推演,每次推演看看虫子爬出去没有,爬出去了就返回推演到了多少分钟就行了,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值