[2016NOIPPJ04]魔法阵

难度:比较难

 

题目大意:m个魔法物品,魔法值不超过n,求能组成多少个魔法阵。前提:

①找到a,b,c,d,且a

(b-a)=2(d-c)

(b-a)<(c-b)/33(b-a)<(c-b)


80~85:


因为a,b,c,d要满足:a

通过移项,不难发现,只有知道a,b,c,就可以算出d,因此要用三重循环。

接着,因为3(b-a)

由此限制c的范围,从而加强效率


 [2016NOIPPJ04]魔法阵_第1张图片

额,大家应该从上图懂得了些什么了吧....

如果是80分,就可以枚举i,j,k,然后得出A,B,C,D

 

接着,我们可以发现,当知道i,C,k时,可求A,B,D;当知道i,A,k时,可求B,C,D

 

如果k未知,那么知道A可求B,知道C可求D

所以如图所示,A,B借助C,D的后缀和来算,C,D借助A,B的前缀和来算。

而最主要的就是i,A,C

 

i的取值范围不多说,而以下为AC的取值解释。

 [2016NOIPPJ04]魔法阵_第2张图片

[2016NOIPPJ04]魔法阵_第3张图片

So,你们都懂了吗?

你可能感兴趣的:(比赛题解,NOIP2016)