zoukankan      html  css  js  c++  java
  • 【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)

  • 相关阅读:
    设计模式系列
    Python3 系列之 可变参数和关键字参数
    设计模式系列
    【HANA系列】SAP HANA ODBC error due to mismatch of version
    【FICO系列】SAP FICO FS00修改科目为未清项目管理
    【FIORI系列】SAP OpenUI5 (SAPUI5) js框架简单介绍
    【HANA系列】SAP HANA SQL获取当前日期加若干天后的日期
    【HANA系列】SAP HANA SQL获取本周的周一
    【HANA系列】SAP HANA SQL获取当前日期
    【HANA系列】SAP HANA SQL获取当前日期最后一天
  • 原文地址:https://www.cnblogs.com/Sai0511/p/10360601.html
Copyright © 2011-2022 走看看