ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【Noip2015pj】求和

2019-02-10 23:44:23  阅读:238  来源: 互联网

标签:于是 求和 Noip2015pj i2 i1 num +...+ 式子


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

标签:于是,求和,Noip2015pj,i2,i1,num,+...+,式子
来源: https://www.cnblogs.com/Sai0511/p/10360601.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有