首页 > 其他分享 >NOIP 数据结构

NOIP 数据结构

时间:2024-11-17 21:32:11浏览次数:1  
标签:frac NOIP 标记 sum sum2 权值 区间 数据结构

线段树

标记看成序列而不是数

权值对权值、标记对标记、标记对权值

  • P1471

区间加,区间平均值,区间方差

区间平均值等同于区间和

将方差式子拆解:$\frac{1}{n} \sum (A_i-\overline{A})^2 = \frac{1}{n} (\sum{A_i}^2-2\sum A_i \overline{A} + n{\overline{A}}^2) $

把 \(\overline{A}=\frac{1}{n} \sum A_i\) 带入,得 \(\frac{1}{n} (\sum {A_i}^2 - \frac{2}{n}(\sum A_i)^2 + \frac{1}{n}(\sum A_i)^2) = \frac{1}{n}(\sum {A-i}^2 - \frac{1}{n} (\sum A_i)^2)\)

发现本质上是求区间平方和(后者可通过区间和解决)

权值:sum1 区间和,sum2 平方和
标记:add
合并:权值合并显然,标记合并也显然,考虑标记对权值(sum1显然,考虑sum2)的合并。

考虑拆分 sum2,易得 \(sum2_u'=sum2_u+2add_u·sum1_u+len_u·{add_u}^2\)

细节:push_up 先进行 sum2 的转移(sum1sum2 的转移有影响)

标签:frac,NOIP,标记,sum,sum2,权值,区间,数据结构
From: https://www.cnblogs.com/CheZiHe929/p/18551137

相关文章

  • NOIP 模拟 9
    A送信卒直接二分。B共轭树图看了好多篇题解都说的不太清楚,随便观察一下得知子树间互不影响,且没有边相交,在不连直接父亲的情况下,孩子的父亲一定比祖先的父亲靠上,所以这道题考虑的是和祖先的关系,而不是与孩子的关系,然后这个时候可简单地设计出一种状态,\(f_{u,i}\)表示\(u\)......
  • NOIP 模拟 8
    搬的【MX-S5】梦熊NOIP2024模拟赛1(同步赛)A王国边缘倍增写脸上了。B买东西题反悔贪心写脸上了,首先按物品价格从小到大排序,这样之前用的优惠券一定可以给现在的优惠券用,如果给价格为\(a\),折扣价为\(w\)的物品用了优惠为\(x\)的优惠券,现在拿过来给\(b\)用后的贡献是......
  • NOIP 模拟 11
    T1暴力操作(opt)类似背包的处理出来除以每个数的最小代价,然后直接二分check即可,细节就是处理前后要做后缀min,然后求出\(\lfloor\frac{a}{x}\rfloor\lemid\)的最小\(x\),可以通过整除分块的套路,\(x=\lfloor\frac{a}{mid+1}\rfloor+1\)。T2异或连通(xor)trie树上的一个子树......
  • NOIP2024加赛5
    暴力操作(opt)拜谢丁真首先题目有一个很明显的性质:我们肯定只会对前\(\cfrac{n+1}{2}\)个数进行操作使它变小。最后的答案很明显没看出来具有二分答案的性质,考虑怎么check。实则就是要判断前\(\cfrac{n+1}{2}\)个数是否都能\(\lemid\)。我们可以方便的找出\(a_i\)变......
  • ES6 Set和Map数据结构用法详解
    文章目录前言Set数据结构创建Set添加元素删除元素删除所有数据获取set的大小(类似于数组的长度)检查是否包含某个元素四种遍历set的方法1.for...of循环2.forEach方法3.转换为数组后使用for循环4.keys(),values(),entries()集合运算方法Map数据结构创建Map添加元素(设......
  • NOIP2016 提高组 愤怒的小鸟
    NOIP2016提高组愤怒的小鸟比较板的状压dp,结果做了3天才写完。算法一暴力搜索所有猪的分组情况,同组要满足能一根抛物线打完。时间复杂度\(O(n^n\timesn)\),实现的好的话大概能过\(60pts\)。最难写的大概是函数判断的部分。想一次写对就一定要打好草稿先理清思路。这是经验......
  • NOIP2021 做题笔记
    这次又被抓过去写noip2021了\(qaq\)P7960[NOIP2021]报数可以用类似于质数筛的方法筛一遍,做到\(\mathcalO(\)值域\()\)的预处理,以及\(\mathcalO(1)\)的查询。#include<bits/stdc++.h>usingnamespacestd;#definelllonglong#definemxn10000010#definemxm200......
  • CSP/信奥赛C++语法基础刷题训练(12):洛谷P1047:[NOIP2005 普及组] 校门外的树
    CSP/信奥赛C++语法基础刷题训练(12):洛谷P1047:[NOIP2005普及组]校门外的树题目描述某校大门外长度为lll的马路上有一排树,每两棵相邻的树之间的间隔都是......
  • 数据结构与算法刷题(参考代码随想录结构,C、C++实现)
    目录数组数组理论基础二分查找移除元素有序数组的平方长度最小的子数组螺旋矩阵Ⅱ总结篇链表1.链表理论基础2.移除链表元素3.设计链表4.反转链表5.两两交换链表中的节点6.删除链表的倒数第N个节点7.链表相交8.环形链表Ⅱ9.总结篇哈希表1.哈希表理论基础2.有效的字母异位词3.两个数......
  • [考试记录] 2024.11.16 noip模拟赛14
    T1字符串构造机考虑将一个LCP条件拆分成两个,一个是相等的部分,使用并查集维护,另一个是不等的部分,两个串末尾的字符一定不相等,随便那啥维护。对于非法情况就是在同一个相等联通块内有不相等的条件。然后考虑从前往后贪心即可。#include<bits/stdc++.h>usingnamespacestd;#d......