题意
给定5个数字a, b, c, d, m, 通过对a,b进行以下4种操作,问最少几步能够将(a, b) 转化为(c, d)
- x = x & y
- x = x | y
- y = x ^ y
- y = y ^ m
真彩希帆のファン
在USC的CSCI-526游戏开发课程中,我们的项目遇到了这样一个问题:对于一个事件,可能有多个模块需要关注。比如游戏中的天气变更事件,防御塔、怪物、数据统计模块都需要根据这个事件触发操作。最开始时我们将触发代码,甚至是部分逻辑放入了其他系统,导致了模块间的强耦合。为了解决这个问题,我想到了观察者模式,又想到了在字节实习时使用的EventBus。于是我便按照记忆手写了属于我们自己的Eventbus,在实现的过程中发现这个模式确实非常有趣,故写文记录。
In the discussion of this problem, most people said we can use monostack to solve it. However, they didn’t tell us why. Here I want to give an explanation with more details.
It taked me a long time to understand the solutions in Discussion, so I decided to explain it by myself.