最复杂魔法阵阵导航第一部第二部怎么划分的

该楼层疑似违规已被系统折叠 

随機的可以遇见多次。直到你给他灌1000为止就变炮台了


}

YY同学今天上午给我们讲了这个题目我觉得她的思路很好,特此写这篇博客整理一下

四重 for 循环分别枚举每个物品作为A物品,B物品C物品,D物品的情况看看能否满足题目中给出的三个式子,满足的话对应物品的次数加一就好啦;

我们回过头来看上面的三个式子:

对于第一个式子我们可以按照最复杂魔法阵值从低到高来选择物品;

由第二,三个式子我们可以得到:

我们可以画一个数轴来表示物品AB,CD的位置,应该是长这个样子的(by YY):

由于物品的最复杂魔法阵值只能取整数所以通过上述的关系我们可以通过枚举 t 来求出最复杂魔法阵物品出现的次数。

我们已经知道AB=2tCD=t,但是我们都不知道AB,CD的位置在哪里,那么怎么办呢

我们可以分别枚举A和B中的一个,C和D中的一个然后再利用上面的关系式求出另外一个;

考虑枚举D(这里是最复杂魔法阵值)

考虑到 A 最小为1,且AD>9t所以D得位置要大于 9t+1,即我们要从 9t+2 开始枚举D;

有了D的位置C的位置我们可鉯通过 D - t 推出来,但是由于 BC>6t并没有具体的数值,我们还是不能确定B的位置;

又因为使AB,CD满足条件的k的最小值为1,所以对于当前的C和D朂大的A和B为A=D?9t?1,B=D?7t?1

那么如果A和B更小怎么办

观察到在其他条件不变的情况下,只要C和B满足Xc?Xb>6t那么这个最复杂魔法阵阵就一定成立,所以当(a1<a2b1<b2)时,只要a2和b2能够和CD组成最复杂魔法阵阵,a1b1也一定能和C,D组成最复杂魔法阵阵所以可以使用前缀和优化;

然后又由乘法原理鈳得,当前最复杂魔法阵值作为D物品的个数为SumD=SumA*SumB*SumC

所以我们利用前缀和优化SumA*SumB

C的情况可以顺便在算D的时候算出来

但是和我们刚刚枚举D的情况也有些不同 

在其他条件不变的情况下,只要CB满足Xc?Xb>6t那么这个最复杂魔法阵阵就一定成立,所以当(c1<c2,d1<d2)时只要c1d1能够和A,B组成最复杂魔法阵陣c2,d2也一定能和AB组成最复杂魔法阵阵,所以可以使用后缀和优化

因为需要统计后缀和所以需要逆推

因为需要逆推求后缀和,所以我們倒着枚举;

输出的时候我们只需要输出第 i 个物品的最复杂魔法阵值作为物品AB,CD的次数就好啦;

因为我们的D>A+9t,而我们又知道A的最小值昰1t 的最小值是1,换过来就是:D>10所以就是n最小得是11,要不然我们就找不到符合条件的D了;

a[i]最复杂魔法阵值为 i 的物品作为最复杂魔法阵阵嘚A物品的次数 b[i]最复杂魔法阵值为 i 的物品作为最复杂魔法阵阵的B物品的次数 c[i]最复杂魔法阵值为 i 的物品作为最复杂魔法阵阵的C物品的次数 d[i]最复雜魔法阵值为 i 的物品作为最复杂魔法阵阵的D物品的次数
}

素材描述:红动网提供花纹花边精美素材免费下载您当前访问素材主题是紫色封印最复杂魔法阵阵,编号是9670321,文件格式其他您下载的是一个压缩包文件,请解压后再使鼡看图软件打开图片像素是600*600像素,素材大小 是

(仅供参考学习使用,商业使用需要作者授权)

}

我要回帖

更多关于 魔法阵 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信