首页 > 其他分享 >P2671 [NOIP2015 普及组] 求和

P2671 [NOIP2015 普及组] 求和

时间:2023-04-24 21:56:00浏览次数:48  
标签:P2671 NOIP2015 奇偶 求和 个数 配对

here

看到这个条件,想到等差数列,于是假设了1, 3, 5位置上的颜色一样时,总和是多少,然后发现是:

(1 + 1 + 3 + 5)f(1) + (1 + 3 + 3 + 5)f(3) + (1 + 3 + 5 + 5)f(5)

现在看的很清楚了,有两种可能:

(i + 配对的数之和 + i)f(i)或者(i*配对的数的个数+配对的数之和)f(i)

看看样例1,发现后者成立,前者不成立。

显然配对的数就是同奇偶的数,所以只要分别统计奇偶数的个数和总和,就可以对每个f(i)(也就是number[i])单独统计贡献,此题完结。

时间复杂度O(N)。


但是这样是不严谨的,上述方法提供了一个方向,我们来看看为什么会这样。

把式子展开(a+b)(f(a)+f(b)) = (a+b)*f(a)+(a+b)*f(b)

不难发现,每次有一个配对的数j出现,对于f(i),系数就多了一个i+j,所以,配对的数的个数就是i的系数,而另外的一部分就是配对的数之和。

另外,由于数对是有序的,(1,3)和(3,1),1都和3匹配,3都和1匹配,这样带来了方便。

如果上述数对算成两个,答案要乘二。

标签:P2671,NOIP2015,奇偶,求和,个数,配对
From: https://www.cnblogs.com/zhangchenxin/p/17351060.html

相关文章

  • 数据计算--求和与平均值
    1.方法说明: 2.按行相加求和: 3.按列计算平均值: ......
  • 数组求和累加
    publicclassTest2{publicstaticvoidmain(String[]args){int[]arr={68,27,95,88,171,996,51,210};intsum=getEvenNumberSum(arr);System.out.println(sum);}/*一个数组,元素是{68,27,95,88,171,996,51,210}求出该数......
  • 盘点一个Excel多条件求和的问题
    大家好,我是皮皮。一、前言前几天在Python最强白银交流群【维哥】问了一个Excel处理的问题,这里拿出来给大家分享下。下图是他的数据:二、实现过程这个问题确看上去是Excel的问题,但是怎么开展合并计算,确实头大。虽然用一些文本截取的确可行,但是肯定会增加列。粉丝的需求是一步到位的那......
  • P2661 [NOIP2015 提高组] 信息传递-拓扑排序+DFS深度优先遍历
    题目描述有 n 个同学(编号为 1 到 n )正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为 i 的同学的信息传递对象是编号为 Ti​ 的同学。游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信......
  • CodeForces - 616E Sum of Remainders (数论)大数取余求和 好题
    CodeForces-616ESumofRemaindersTimeLimit: 2000MS MemoryLimit: 262144KB 64bitIOFormat: %I64d&%I64uSubmit StatusDescriptionCalculatethevalueofthesum: nmod1 + nmod2 + nmod3 +...+ nmodm.Astheresultcanbeve......
  • P2680 NOIP2015 提高组 运输计划
    P2680NOIP2015提高组运输计划最小化最长的路径,考虑二分答案。问题转化成检验删去一条边的边权后,最长路径权值能否不超过\(x\)。考虑没删边权时,原先那些不超过\(x\)的路径,删去边权后肯定不会影响,直接忽略。考虑原先比\(x\)长的那些路径。我们期望删边权后这些路径全部......
  • DataGrid应用技巧两则(downmoon)---列求和与列字段转换
    DataGrid应用技巧两则(downmoon)---列求和与列字段转换<scriptlanguage="javascript"type="text/javascript">document.title="DataGrid应用技巧两则(downmoon)---列求和与列字段转换-"+document.title</script>DataGrid应用技巧两则(downmoon)一:增加求和列: pri......
  • es6 数组对象求和
    letlist=[{id:1,price:2},{id:2,price:4},{id:3,price:6},{id:4,price:8},];letres=list.reduce((sumData,key,index,arrData)=>{console.log('a',sumData);//上⼀次调⽤回调时返回的累积值c......
  • 洛谷P2415 集合求和(数学问题,使用集合子集求和公式)
    可以知道对于一个有n个数据的集合,其子集个数有2^n个至于证明可以这样理解,对于n个数据,其子集就是对数据进行组和,而对于每个位置上的数据,组合时仅有两种状态即有此数据或无此数据,也就是有两种可能,而对于n个数据,就有2^n种可能不妨设其中一个非空数据X,对于X,依据X可以将子集划分为两......
  • 论文《深度多尺度卷积LSTM网络的出行需求和出发地预测》
    学习参考:https://blog.csdn.net/zuiyishihefang/article/details/128030409论文题目:《DeepMulti-ScaleConvolutionalLSTMNetworkforTravelDemandandOrigin-DestinationPredictions》是2020年发表在IEEE的文章。出处:IEEETransactionsonIntelligentTransportationS......