NOIP第四题解题报告

来源:互联网 发布:java马士兵教程 编辑:程序博客网 时间:2024/05/23 19:22


    这道题的题目大意就是有n个数,用这n个数组成四个数a,b,c,d满足以下的条件,a<b<c<d,b-a=2(d-c),b-a<(c-b)/3,这样子就可组成一个魔法阵,问每个数分别成为a,b,c,d的次数。

 

      这道题我们可以把它模拟在一个数轴上,那么就是这个样子的:

 

    然后根据题目上给的算式,把c和d之间的长度假设为i,那么乱推之后,又变成了这个样子:

 

    如果我们是想要求a的方案数的话,那么我们就要枚举出a所在的这个位置,那b就是a+2i,c里面还需枚举一个k,所以如果这样下去的话可能就会造成超时。所以这是行不通的,那想要优化的话,就只能把这个k去掉,我们可以看看,c的位置最小是2i+6i+1=8i+1,那么在这个位置之后的所有的值,都可以去更新这个a,所以加上一个后缀和,就可以完成优化。

    其他的可以继续根据这个东东,搞一下,分别求出b,c,d,这道题就是这个样子了。


1 0
原创粉丝点击