首页 > 其他分享 >累加和规律

累加和规律

时间:2024-05-03 18:46:06浏览次数:20  
标签:10 CF1972E 规律 位置 累加 num

1 2 3 4 5 总和为:56/2=15;
1 3 6 10 15 总和为:5
67/3!=35
1 4 10 20 35 总和为:5
678/4!=70
所以对于这样的序列的累加和有这样的规律:
1.k(k+1)/2
2.k
(k+1)(k+2)/3!
3.k
(k+1)(k+2)(k+3)/4!
4.……
例题:
CF1972E
题意:给了一个经过k次迭代后的树状数组,要求出最开始的数组是什么样的
先打表找找规律:
1 1 1 1 1 1 1 1
1 2 1 4 1 2 1 8
1 3 1 8 1 3 1 20
1 4 1 13 1 4 1 38
首先第i个位置的值是:a[i]+a[i-1]+a[i-2]+a[i-4]+……+a[i-lowbit(i)/2];
比如说第4个位置的值就是:a[4]+a[3]+a[2]=4,a[8]=a[8]+a[7]+a[6]+a[4]
然后我们单独计算第i个位置的贡献,比如说1:
第一轮循环:(第一个位置)
a[2]=a[2]+a[1],a[4]=a[2]+a[3],a[8]=a[7]+a[6]+a[4];
计算下来:a[2]加了一个a[1],a[4]加了一个a1,a[8]加了一个a1
所以:num[2]=1,num[4]=1,num[8]=1;
然后第二轮:
a[2]=a[2]+a[1],a[4]=a[2]+a[3],a[8]=a[7]+a[6]+a[4];
此时a[2]里面有两个a[1]了,num[2]=2,num[4]=num[2]+num[4]=3,num[8]=num[4]+num[8]=4;//不断累加
第三轮:
num[2]=3,num[4]=4+3=7,num[8]=7+4=11;
所以可以看出每轮的贡献
2:1 1 1 =3
4:1 2 3 =7
8:1 3 6 =10
好像正好是每轮的前缀和的不断迭代累加
所以第1个位置的贡献是随着后面的位数不断增加而增加的,并且是前缀和累积式的增加
第一个:k,第二个k(k+1)/2,第三个:k(k+1)(k+2)/3!,第四个:k(k+1)(k+2)(k+3)/4!;

代码

CF1972E

标签:10,CF1972E,规律,位置,累加,num
From: https://www.cnblogs.com/mendax-Z/p/18171478

相关文章

  • 数论模拟(1) 小朋友们,我们今天来找规律
    \(60\)分钟,干出来\(30\)至\(40\)分(满分\(50\)),最后一步没写出来还是有点rz.题目:求最小的整数\(n\),使得对至少两个不同的奇素数\(p\),有\[\sum_{k=1}^{n}(-1)^{v_p(k!)}<0.\]解:根据\(v_p\)函数的性质,可以对所有正整数进行规律性地分块,每块中的\(v_p\)值都是相同的:......
  • ndnsim协议栈faceid的规律
    face——中文译作“面”节点可能有不同的物理接口,如无线接口,有线接口。有线接口也可能有多个,例如交换机都有多个有线网口。但是无线接口大多只有一个。基站有多个天线,但是向无线信道发送信号的接口也是只有一个。在ndn中发送兴趣包可以指定faceid,可以让ndn网络层指定转发走哪个......
  • 以规律来理解单词
    目录象形字母表示的含义ABCDEFGHIJKLMNOPQRSTUVWXYZ单词的偏旁部首双辅音组合元音+辅音组合练习其他常用字母组合音节的规律字母间可以互换的例子熟练象形字母表示的含义学习英语就避免不了要记忆单词,如果不掌握单词的一些规律性,那么几万个单词对你来说都是一些无规律字符,你大......
  • jmeter终极线程组波浪型,有一定的时间规律场景
    jp@gc-UltimateThreadGroup(终极线程组波浪型,有一定的时间规律场景)阶梯图波浪型场景    UltimateThreadGroup ===波浪型场景    在添加第二行时,初始化时间点,要大于等于上一行的所有时间之和====才能设计出波浪型场景    阶梯线程组:steppingthreadgro......
  • 讨论班——素数无穷的证明与素数分布规律的讨论
    ......
  • python 操作excel ,累加insert
      importosfromopenpyxl.reader.excelimportload_workbookimportpandasaspddefinsert(relist,one):#data=[{"pol":one['pol'],"pod":one["pod"],"gc_scac":z["group"],&quo......
  • day01-字符串方法-逻辑运算符规律
    字符串方法 查询类方法 字符串.index(字符):查询指定字符在整个字符串中第一次出现的位置下标;如果下表不存在则报错字符串.find(字符):查询指定字符在整个字符串中第一次出现的位置下标;如果下表不存在则返回-1字符串.rindex(字符):查询指定字符在整个字符串中最后一次出现的......
  • 代码随想录算法训练营第二十三天(二叉树9)|669. 修剪二叉搜索树、108. 将有序数组转换为
    文章目录669.修剪二叉搜索树解题思路源码108.将有序数组转换为二叉搜索树解题思路源码538.把二叉搜索树转换为累加树解题思路源码669.修剪二叉搜索树给你二叉搜索树的根节点root,同时给定最小边界low和最大边界high。通过修剪二叉搜索树,使得所有节点的值......
  • leedcode-单词规律
    自己写的,好像有点复杂:classSolution:defwordPattern(self,pattern:str,s:str)->bool:#将字符串s按空格切分成单词列表mystr=s.split()#创建一个空字典,用于存储字符和其出现位置的映射mydic=dict()......
  • RDD缓存 检查点 共享变量 累加器
    1.缓存的基本介绍   缓存介绍:       1.当一个RDD的产生过程(计算过程),是比较昂贵的(生成RDD整个计算流程比较复杂),并且这个RDD可能会被多方(RDD会被重复使用)进行使用,      2.此时为了提升计算效率,可以将RDD的结果设置为缓存,这样后续在使......