算法--模拟 例题P4924 [1007]、P1518 [USACO2.4]

  1. 问题建模:明确定义要模拟的问题或系统 。包括确定输入数据、模拟的时间步长、模拟中的事件和实体等。

  2. 数据结构:设计和实现适当的数据结构来表示模拟中的对象和事件

  3. 事件处理:定义事件处理程序,根据模拟的具体需求,执行事件所需的操作。包括状态更新、数据收集和结果记录等。

  4. 调试和优化:测试和调试你的模拟算法,确保它按照预期运行。优化性能以提高模拟的效率。

其实模拟就像普通数学题 翻译题目后按题目情况分别处理 不过这个时候会出现数据维护的不得当、过程过于繁琐、基本思路错误等问题。  

这里放两个例题

例题1 

  

 例如 1.在处理数据的时候  由于同数组内改变不合理很乱 因此开另一数组备用储存 同时用memcpy进行维护。(因此模拟题中 其实不仅是思想 还有处理的方式 我们希望让方式简单 可读性提高)

        2.关于巧妙的处理局部到整体的思想进行模拟

由数学的思想扩展到翻转 最后只用几个简洁的处理就完成

例题2

首先一个对象多个量 当然是选择结构体啦

接着 这里也是用打表避免if else 判断,由于有闭环的指向---这里又用了% 使索引值处在一个处理周期之中 

判断是否出现死循环用的是多维数组 但这里也可以类似给每个值定义上一个数位 如 cow.x*10+cow.y*100如此定义

最后是大框架定好是一些细节问题 诸如 如果定好了一个判断的变量记得在循环开始时刷新它的值 保持每次判断 注意函数无法单纯修改变量值 需要指针的使用(新手在正在铭记自己的wa。。)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值