h5魔塔吧 关注:434贴子:3,251

回复:全蓝宝石转换理论

只看楼主收藏回复

以后学了高数再回来看QWQ


IP属地:山东来自Android客户端32楼2018-09-25 05:46
回复(4)
    发现前面的定义部分还是有一点不严谨,在把魔塔地图转变成图的地方……此外对于一般的图,可以用穷举生成树的办法得到最优解,但是计算量较大。有兴趣再更新吧


    IP属地:上海来自iPhone客户端33楼2018-09-25 10:00
    收起回复
      看这个让我想到了微积分基本定理...


      来自手机贴吧34楼2018-09-30 16:17
      回复
        感谢楼主的辛苦科普,求继续


        IP属地:西藏来自手机贴吧35楼2018-10-11 21:17
        收起回复
          完全不懂大佬在说啥


          IP属地:安徽来自Android客户端36楼2018-10-26 10:00
          回复
            大佬,请问蓝宝石的顺序可不可以理解为性价比(防御/减伤)表示,性价比高的先打。由于减伤大于防御,所以做性价比的倒数,已经是你所说的特征值。6楼的血量除以增幅系数也是性价比。
            关于全绿宝石,如果没有净化怪,性价比就是绿宝石(或者说护盾值)除以怪物数。
            话说是谁最早把护盾称作魔防的?我一开始还以为魔防能当做和魔攻怪战斗时的防御力。


            IP属地:山东来自Android客户端38楼2019-03-22 23:26
            收起回复
              谢大佬分享


              IP属地:江苏来自Android客户端39楼2020-05-10 23:59
              回复
                终于看懂了


                IP属地:江苏来自Android客户端40楼2020-05-10 23:59
                回复
                  好久没更新了,更新一下吧!之前的文章中提到的算法不是最优的,worcher将此题改编为ACM黑龙江省赛题后发现了一个更优的算法,时间复杂度可以降低为O(nlgn),n为结点个数。
                  我们计算完所有特征之后,直接观察最小点A,看看它是否有父亲。如果它没有父亲,我们取这个最小点,然后在剩下的树上重复操作。如果有父亲,由最小性,它的父亲B的特征>=A的特征。我们证明:在至少一条最优路径中,取了B之后,立即取A。
                  我们假设取B之后,进行了另一些操作C之后,再取A。则由A的最小性,C的平均特征>=A的特征。易证明:BAC不劣于BCA。因此得证。
                  因此我们直接把A并入B中。然后重复操作。这样纸笔算可以简化很多流程。下面证明这个算法的时间复杂度是O(nlgn)。
                  这里除了取最值之外的操作时间复杂度为O(n)。取动态最小值的时候,可以构造一个小根堆,把所有点放入堆之后,给每个点加上一个时间参数1。每次取堆顶就是最小数。如果有结点合并,把父亲加入小根堆,并给这个点的时间参数+1。(堆中可能有多个同一点,但时间参数不同。)每次取堆顶时,检查时间参数是否是最新,不是的话直接扔掉。易知结点个数<=n,每次删除或添加结点的时间复杂度都是O(lgn)。扔掉无效结点的次数不会超过n次,因为一个新节点被加入时才会增加一个无效结点,新结点被加入仅当合并结点,不会超过n次。取出最小结点的次数也不会超过n次,因此时间复杂度是O(nlgn)。感谢worcher提供的优秀算法!


                  IP属地:上海41楼2020-09-27 19:23
                  收起回复
                    大佬您好,教程塔2蓝宝石转换理论中的反吸血理论不太理解呀,为什么*(1+a1)怪物守a2血瓶,*(1+b1)怪物守b2血瓶,H(ab)表示ab打完血量,就得出H(ab)-H(ba)=a2b1-a1b2
                    而我计算H(ab)-H(ba)=(a2-b2)(H-1)+(a2b1-a1b2)H,不知道是我哪里理解有问题吗?


                    IP属地:山西来自Android客户端42楼2021-11-22 21:47
                    收起回复
                      蓝宝石教程4层没有守宝石的怪作为一个点,这样的怎么搞,象节点A分叉出的BC点的特性都比A的小,这种怎么处理,全合一起吗?


                      IP属地:广西来自Android客户端43楼2022-03-04 15:46
                      收起回复
                        于全蓝宝石转换理论,这里尝试发展一套近似的处理树状红宝石蓝宝石都有的理论。(比较偏算法向)
                        考虑一个树状图,图里有蓝宝石,红宝石和怪,怪可以有任意的攻防,但没有特殊形式。
                        整体的思路是然后对吃红宝石的顺序进行穷举(指数复杂度),但是比较高效的处理剩下的情况(多项式复杂度)。


                        来自Android客户端46楼2023-01-12 17:15
                        回复
                          首先我们解释红宝石的穷举在实战中相对来说是比较可行的:
                          我们考虑一个实战中经常会遇到的情况,即怪物的临界值(能减少一次打怪攻击次数所需增加的最少攻击值)比较高,是一个红宝石攻击的几倍,这种情况下红宝石的价值可以合并,例如如果吃一个宝石不能突破任何一个临界的话就没有任何作用。因此穷举中的很多情况可以省去。


                          来自Android客户端47楼2023-01-12 17:15
                          回复
                            现在我们的程序是外面有一个红宝石顺序的大循环,其中去掉了上面提到的不合理的顺序。
                            现在我们考虑一个已经确定的拿红宝石的顺序。基于蓝宝石转换理论,所有间隔在两个红宝石之间的东西可以被简化成一个树,由于全是蓝宝石,我们把这个结构称为“蓝树”。那么现在问题已经被转化成了一个线性的结构:
                            红宝石1 -- 蓝树1 -- 红宝石2 -- 蓝树2 ......


                            来自Android客户端48楼2023-01-12 17:16
                            回复
                              上面的结构虽然被称之为是线性的,但是并不完全线性,因为后面的红宝石只是在前面的蓝树的一个叶子,因此不在这个叶子的路径上的其他子节点可以在任意的时候进行处理。
                              因此我们把蓝树上的所有节点分成两类:在红宝石所对应的路径上的节点,我们成为红节点,其他的节点称之为蓝节点


                              来自Android客户端49楼2023-01-12 17:23
                              回复