[数据结构] 是一种基于分块思想的离线算法。 本文章介绍初等。 今天才学会带修 普通 [国家集训]小Z的袜子 一个板子题,要求维护平方和。 直接给出公式吧: \(ans=\frac{\sum_{i=1}^c x_i^2-(R-L+1)}{(R-L+1)(R-L)}\) 的基本 ...
转载 2021-08-12 18:26:00
48阅读
2评论
zoto【来源:2021杭电多校第一场的第10题】 题目: Problem Description You are given an array fx.For each i(1<=i<=n) , we use a point (i,fx[i]) in XoY coordinate plane to ...
转载 2021-07-25 10:48:00
123阅读
2评论
数据结构---链的实现 目录链---队列的链式表示和实现链队列的结构定义链队列的基本操作1.初始化---构造一个只有头结点的空队列2.清空队列---让队列重置成初始化的状态(头结点还存在,指针域为空)3.销毁队列---整个队列不再存在(需释放头结点)4.入队5.出6.取头元素7.判断队列是否为空8.求队列长度链---队列的链式
文章目录简介Java 实现简介链就我们数据结构中通常说的队列,就是链式的队列,他也是线性表,FIFO,链式存储结构。队列还是很常见的,链编写过程中还有一个小的细节点在下文中会做阐述,现在我们用 java 一起实现一遍吧!
原创 2021-07-06 17:57:58
193阅读
文章目录简介Java 实现简介链就我们数据结构中通常说的队列,就是链式的队列,他也是
原创 2022-01-15 15:54:33
327阅读
第10章:树结构基础1、树结构数组:优点:通过下标方式访问元素,速度快。对于有序数组还可以使用二分查找提高检索速度缺点:如果要检索具体某个值,或者插入值(按一定顺序)会移动整体,效率较低。链表:优点:插入一个数值,只需要将插入节点链接到链表中,删除效率也很好缺点:在进行检索时,效率低,需要从头节点开始遍历树:提高数据存储,读取的效率树的示意图2、二叉树每个节点最多只能有两个子节点,左节点,右节点满
算法本质上。。似乎是大暴力。。。传说中能解决一切区间问题的算法
原创 2016-07-09 16:24:28
123阅读
回滚 用来处理一类区间扩张容易而收缩难的问题。 大概的思路如下: 还是按的方法排序(不要奇偶性优化),把所有询问按照左端点所在块分类处理。 对于左端点在同一个块$[L,R]$的,先把右端点也在$[L,R]$内的暴力处理。 而其它询问的右端点必定递增,因此我们可以实时处理出$[R,r]$的
转载 2020-01-18 19:49:00
96阅读
2评论
oi-wiki 核心思路:离线算法,把每次的询问先记录下来,按一定的顺序排序,然后暴力从上一个区间转移到下一个区间。 复杂度: 当 \(n\) ,\(m\) 同阶时,块长取 \(\sqrt n\) 时,复杂度为 \(O(n \sqrt n)\) ; 当 \(m < n\) 时,块长取 \(\disp ...
转载 2021-08-20 11:53:00
87阅读
2评论
参考资料: 算法——从入门到黑题 详解 算法简介——OI wiki dead_X 的题单 关于: 一种利用 分块 特点将 区间操作 进行 离线处理 的 暴力。(暴论) 算法是由前国家队长涛提出的算法。最开始的是将区间询问按照 特定顺序 排序后,通过逐步移动左右端点求出 ...
就是离线处理一些问题。 当一个问题[l,r]可以由[l-1,r],[l,r+1],[l+1,r],[l,r-1]相差一的区间由O(1)或O(logn)推出时,就可以用实质上是离线处理,通过改变询问的顺序使复杂度降到O(n^1.5) 其实用到分块的地方仅仅是排序中用到? 排序的过程:先
转载 2016-12-14 22:06:00
130阅读
2评论
前言 是一种十分巧妙的数据结构,它和 分块 有着异曲同工之妙。算法由前国家队长涛发明,是一种 优雅的暴力 。
转载 2021-07-24 23:47:00
484阅读
2评论
/*当我们知道s(n,m)的值之后便可以通过它得到四个递推公式:s(n,m-1)=s(n,m)-c(n,m);s(n,m+1)=s(n,m)+c(n,m+1);2*s(n-1.m)=s(n,m)
转载 2022-01-10 10:58:56
44阅读
题:http://acm.csu.edu.cn:20080/csuoj/contest/problem?cid=2177&pid=B#include<bits/stdc++.h>#define db doubleusing namespace std;const int maxn=1e5+10;int a[maxn],b[maxn],vis[maxn],ans[m...
原创 2022-03-14 10:10:13
52阅读
的模板!!!!! 嘿嘿嘿 include using namespace std; const int maxn = 1000005; inline int read() { int x=0,f=1;char ch=getchar(); while(ch '9'||ch='0'&&chQ[i].
qt
原创 2021-07-16 11:38:58
167阅读
还有一个blog的也可以看看:戳这里。可以证明每一个顶点在最小生成树中在这45度的范围内至多仅有一条边与之相连,也就是如果以一个点为原点,那么上面分成的八个区域里面最多和每个区域连一条边。首先只考虑R...
原创 2021-07-28 13:59:59
230阅读
例题 一:[CQOI2018]异或序列 题意: 给定查询参数l、r,问在al到ar的区间内,有多少子序列满足异或和等于k。对于所有询问,k都相同。 做法: 通过前缀和,将问题转化为在一个区间内有多少对数对的异或值为k,直接套用即可。 *二:[SNOI2017]一个简单的询问 题意: 求 ​g ...
转载 2021-08-01 16:42:00
226阅读
2评论
本质是带优化的双指针,对全部区间进行√n个块的分块操作,然后进行排序。第一关键字为查询的左端点块号,第二关键字为查询的右端点本身的位置。 这里放一个洛谷例题 P3901 数列找不同 附上代码 #pragma GCC optimize("O3") #include <bits/stdc++.h> #d ...
转载 2021-07-22 16:26:00
155阅读
2评论
转载 2021-10-20 11:36:00
787阅读
2评论
一:堆     1.特点:         * 它是完全二叉树。除了树的最后一层节点不需要是满的,其他的每一层从左到右都是满的。最后一层不允许有"洞"节点         * 常常用一个数组来实现         * 堆中的每一个节点关
  • 1
  • 2
  • 3
  • 4
  • 5