qbzt day3 下午(好难)
内容提要
有关数据结构的例题
求逆序对数
统计每个数前面有多少比他大的数
开数组表示这个数之前0~9这些数出现了几次
动态将某个点加一,动态求前缀和
用树状数组
如果数太大了怎么办?
离散化
步骤:先把原数组排序,然后unique去重,之后按原数组lower_bound查找
Stars
由于我们是按照y的升序处理这个星星的,所以在处理的时候只需要处理x<=当前给定的x的个数就好了,用前缀和搞一搞,也是树状数组
二维偏序
一维排序
一维树状数组
Queries
直接开m个树状数组,每个树状数组中都是0/1的,每个位置a[i]表示a[i]这个数%m是否=0,是就是1,不是就是0
第i个树状数组的第j个下标表示a[i]%m是否=i
查询的时候只需要在第mod个数组查询[l,r]的前缀和就可以了
加减的操作就在原来的基础上搞一搞就行了
营业额统计
- set做法
- 线段树
我们维护0~9每个数当前的次数,某一个数前面的最大值和后面的最小值再与这个数做差,最小的就是波动值
维护一个线段树,每次求一个区间的最大值,一个区间的最小值
权值线段树,他的下标不是数组的下标,而是权值的下标
维护序列
维护两个标记
Sasha and array
考虑矩阵乘法
F为矩阵
实际上就是求[l,r]的ΣF[ai]然后乘[1 1]矩阵
区间加法其实就是对矩阵进行区间乘法
于是就变成了区间乘法,区间求和
花神游历各国
每次开根号单点修改去开,longlong范围内最多开6次就会全变成1或0
直到某个区间全部变成1或0就把他打上标记
中位数之和
每插入一个数,他的中位数之和都会发生改变
S[s1,s2,s3,s4,s0]分别表示集合中%5余1,2,3,4,0的数的和
建一棵权值线段树,以a[i]为下标,每一个节点表示在原先的大小在[l,r]中的数在长度为5的数组中长什么样子,以及大小在[l,r]中出现了多少数
大小为k的在合并时需要向后滚动k个再相加
修改:只需要单点修改
先将要处理的数字离散化。
按数字的顺序为下标建立一颗线段树。
线段树的每个节点维护如下几个值:
这一段闭区间中有几个数字
a[0..4]表示下标模5余某的数值之和
单点修改,区间查询即可完成操作。
Rmq problem
Mex表示[l,r]没有出现的最小非负整数
常在博弈论中求sg函数
离线做
扫一遍可以得到以1为左端点的mex值
每次将l右移1,更新r的值
当拿走一个数时,如果这个数只有一个,那么所有大于他的mex都会变成这个数
区间修改取min
对于所有的r,单点查询,标记下放
单次询问log(n)
只有查询没有修改
等差子序列
实质上是求是否存在三元组(i,j,k),满足i<j<k且Ak-Aj=Aj-Ai
如果一个数出现过,就让对应位置变成1,否则为0
枚举等差中项,我们看看是否对称,如果对称就意味着都在这个数之前或者之后出现,也就是说不可能以这个数作为等差中项
- 单点修改
- 比较两段区间是否相同(等于比较两个字符串是否相同)
每个节点表示这个节点的hash值,单点修改,比较hash值
qbzt day3 下午(好难)的更多相关文章
- QBZT Day3(zhx ak IOI)
动态规划 DP和前几天学的东西不大一样,动态规划和数据结构相比是一个非常抽象的东西 先来看看斐波那契数列 定义是F0=0,F1=1,Fn=F(n-1)+F(n-2) 0,1,1,2,3,5,8,13, ...
- qbzt day6 下午 模拟赛
我太菜了 T2 给定一张有向图,每个点有点权.试找到一条路径,使得该路径上的点权最 大值减去点权最小值最大,问这个差最大是多少. 话说这个题第一个想到的思路是tarjan缩点+拓扑排序来着... ...
- Day3下午解题报告
预计分数:20+40+30=90 实际分数:40+90+60=190 再次人品爆发&&手感爆发&&智商爆发 谁能告诉我为什么T1数据这么水.. 谁能告诉我为什么T2数据 ...
- qbzt day5 下午
农场主John新买了一块长方形的新牧场,这块牧场被划分成M行N列(1 ≤ M ≤ 12; 1 ≤ N ≤ 12),每一格都是一块正方形的土地.John打算在牧场上的某几格里种上美味的草,供他的奶牛们享 ...
- qbzt day4 下午
有向图的强连通分量 强联通:两个点之间可以互相到达 如果某个图任意两个点都是强联通的,那么称这个图强联通 如果一个图的子图是强联通的,那么称这个图是强联通子图 一个图的极大强联通子图被称作强连通分量 ...
- qbzt day3 晚上 平衡树的一些思想
pks大佬的blog 二叉查找树 任何一个节点左子树的所有元素都小于这个节点,右子树的所有元素都大于这个节点 查找一个节点:从根节点开始,比他小就向左走,比他大就向右走 平衡树:解决二叉查找树的一些痛 ...
- qbzt day3 上午
内容提要 堆 lca(最近公共祖先) st表 hash 并查集 树状数组 线段树 数据结构 1.堆 Priority_queue 他滋兹:插入删除查询最大值(最小值) 分为大根堆小根堆 2.LCA 首 ...
- qbzt day2 下午
内容提要 高精 矩阵 筛法 先是高精除法 注意细节 高精度开方:神奇的竖式 以小数点为分界线,每两个位砍一刀 87654.321-->08|76|54|.32|1 大概就是先对第一位开方,然后相 ...
- PKUWC 2019 自闭记
PKUWC 2019 自闭记 Day -1 考前天天在隔壁的物竞教室划水(雀魂,能和吉老师一起玩的游戏都是好游戏),没有做题. Day 0 早上8:16的高铁,到广州南居然要6个小时...不知道福州和 ...
随机推荐
- P1507NASA食物
这道题是一个01背包的延伸题,只要透彻理解了,就不难了. 这个题有两个T,一个是体积一个是质量,所以这时候我们必须要加一个for了,同时要优化空间(三维降二维),然后用f[j][k]来表示当体积为j, ...
- 图——图的Kruskal法最小生成树实现
1,最小生成树的特征: 1,选取的边是图中权值较小的边: 2,所有边连接后不构成回路: 2,prim 算法是以顶点为核心的,最下生成树最大的特征是边,但 prim 算法非要以顶点为核心来进行,有些复杂 ...
- pip找不到的安装包
pip install找不到一些python包 可以访问网址,选择python版本自行下载:http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml 清华大学开源 ...
- SCUT - 161 - 灯游 - 数学
https://scut.online/p/161 很显然一个数被开关的概率是他的因子的个数的占比. 然后又很显然其实这个总的概率就是一个二项式求和. 模拟这个过程WA了8发.正常,毕竟浮点误差累积比 ...
- SCUT - 216 - 宝华科技树
https://scut.online/p/216 演员 把这个当成dp算了半天,各种姿势,好吧,就当练习一下树dp. 假如是每个节点的层数之和,按照dp[i][j]为从i点出发获得j科技的最小费用d ...
- IDEA 增加对JPA的支持 执行JPQL语句
IDEA 可以在控制台console中执行JPQL语句: 1. 在已存在的项目中选择项目结构: 2. 选择模块-指定实体所在的模块-选择上面的号 2. 选择要添加的模块:我们使用的是JPA,也可能有的 ...
- Django验证码实现
1.点击验证码更换新的验证码 2.验证码必须是图片形式的 3.验证码实现的流程 服务端: a. session中保存随机验证码,如:87fs b.把验证码写到一个白板里面制作成图片 c. 在页面中显示 ...
- 坐标轴刻度取值算法-基于魔数数组-源于echarts的y轴刻度计算需求
本文链接:https://blog.csdn.net/qq_26909801/article/details/96966372数值型坐标轴刻度计算算法前言算法描述上代码代码运行效果结语前言因实习的公司 ...
- ambari 2.5.0源码编译安装
参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/index.html Ambari 是什么 Ambar ...
- vue手动制作地址选择器
方法一:4级地址选择器(基于elementui Cascader 级联选择器) 推荐 效果图: 组件源码: <template> <div class="select- ...