• 【Noip2015pj】求和


    大佬们的题解都看不懂啊...果然还是太弱了呢。那么这里就给出一个自认为比较好理解的题解吧(qwq)


    正文部分:

    首先考虑部分分:
    (10pts:O(n^3))枚举
    (40pts:O(n^2))枚举:
    移项得知:(2y=x+z),那么对于(x+z)为偶数的时候,一定有(y)存在,否则相反,于是复杂度就降了一维:
    (100pts:O(n))
    同样继续(40pts)做法:将(y)移项:
    那么原式就成了:$$x+z=2y$$
    于是我们就可以讨论(x)(z)的奇偶性:

    奇+偶=奇
    奇+奇=偶
    偶+偶=偶
    偶+奇=奇
    

    发现没有:(x)(z)的奇偶性必须是相同的
    那么我们不妨定义一个集合(i),它有(n)个元素,并且这个集合里的数都是同奇偶且颜色相同的。(为方便,之后英文(number)统一写成(num)
    于是这个集合所造成的贡献就是:

    ((i_1+i_2)(num_{i1}+num_{i2})+(i_1+i_3)(num_{i1}+num_{i3})+...+(i_{n-1}+i_n)*(num_{i_{n-1}}*num_{i_n}))

    好晕啊。。那我们不妨就单拿(i_1)来举例子,即只考虑与(i_1)有关的项:于是式子就变成了:

    ((i_1+i_2)(num_{i_1}+num{i_2})+..+(i_1+i_n)*(num_{i_1}+num_{i_n}))

    似乎毫无头绪,那么尝试把与(i_1)有关的式子展开一下:

    (i1*num_{i_2}+i1*num_{i1}...+i1*num_{in}+i1*num_{i1})

    发现没有,似乎有些规律:
    继续尝试,将式子整理一下:
    (i1*(num_{i2}+...+num_{in})+(n-1)*i_1*num_{i1})
    我们来解释一下为什么是(n-1)组,因为(i_1)(i_1)不能组合为一组,但是与集合中的其他元素都能组合,顾为(n-1)组。

    当做到这一步时,恭喜你,你已经离成功很近了。

    这时还差最后一步,很明显:((num_{i2}+...+num_{in}))这个东西是不确定的,比如当统计(i_2)时这个东西就变成了((num_{i1}+num_{i3}+...+num_{in})),但是我们要预处理出来的一定是一个可以计算的数,于是就要考虑有没有什么方法可以变形出一个等价的式子。
    发现这个东西是不是跟(i_1+i_2+...+i_n)很像?没错,我们把这个东西加上(i_1*num_{i1}),在最后面再减掉(i_1*num_{i1}),于是原式就变成了这样:
    (i1*(num_{i1}+num_{i2}+...+num_{in})+(n-1)*i_1*num_{i1}-{i_1}*{num_{i1}})

    合并一下同类项:
    原式=(i1*(num_{i1}+num_{i2}+...+num_{in})+(n-2)*i_1*num_{i1})

    =(i_1*[num_{i1}+num_{i2}+...+num_{in}+(n-2)*num_{i_1}])

    呼呼,终于归纳完了。
    于是我们就可以求出一个关于(i_n)的公式:

    (i_n*[num_{i1}+num_{i2}+...+num_{in}+(n-2)*num_{i_n}])

    很明显(num_{i1}+num_{i2}+...+num_{in})是可以预处理出来的,于是这道题就做完了。。真毒瘤啊。应该已经很清楚了吧,那我就不放代码啦(qwq)

  • 相关阅读:
    什么是Spring的IOC和DI
    2021年ACP考试复习笔记-云服务器ECS知识点及练习
    个人站点搭建完成啦,欢迎前来参观~
    准备一台标准服务器(模版机)!
    正则表达式几个常用的特殊字符!
    Shell的几个重点工具
    Shell入门,关于语法的一些简单玩意儿
    Mysql for Linux的安装以及远程访问
    在学到MySQL索引时,涉及到了B树和B+树.聊一聊
    Linux的一些问题的处理(重要目录,/配置静态IP/主机名/hosts映射)
  • 原文地址:https://www.cnblogs.com/Sai0511/p/10360601.html
Copyright © 2020-2023  润新知