数据结构
loveicecola
AFO
展开
-
2021-02-02
数据结构ST表#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define ll long longusing namespace std;const int N=1e5+10;int t,n,q,l,r;int a[N],d[N][20],f[20];int main(){ f[0]=1;原创 2021-02-03 14:51:17 · 85 阅读 · 0 评论 -
二叉堆的简单操作
int heap[size];int top;void up(int p){ while(p>1) { if(heap[p]>heap[p/2]) { swap(heap[p],heap[p/2]); p/=2; } else break; }}void insert(int val){ heap[++n]=val; up(n)...原创 2018-06-26 09:57:38 · 237 阅读 · 0 评论 -
分块9:求区间众数(若存在多个众数,输出值最小的)
警戒:以后类似于没看到强制在线这种傻逼错误千万不要犯啊。 问题描述:在乡下的小路旁种着许多蒲公英,而我们的问题正是与这些蒲公英有关。为了简化起见,我们把所有的蒲公英看成一个长度为n的序列 (a_1,a_2..a_n)(a1,a2..an) ,其中 a_iai 为一个正整数,表示第i棵蒲公英的种类编号。而每次询问一个区间 [l,r],你需要回答区间里出现次数最...原创 2018-08-16 21:13:23 · 2877 阅读 · 0 评论 -
线段树合并:从入门到放弃
感谢这篇博客(这里跳转)以及邱宇大神的讲解,我也算作入门(自闭)了。需要掌握的前置知识点:动态开点线段树、权值线段树。一、合并思想线段树合并,就是指建立一颗新的线段树,保存原有的两颗线段树的信息。那么就是:假设现在合并到了线段树的a、b某一个pos如果a在这个区间有pos,b没有,那么新的线段树pos位置赋值为a如果b在这个区间有pos,a没有,那么新的线段树pos位置赋值为...原创 2019-03-14 15:02:03 · 2408 阅读 · 0 评论 -
[ZJOI2017]树状数组
点我跳转前几天和海亮一起考前年浙江省选,难度确实太大了,连暴力都不会打QAQ。这道题是个跟概率有关的题目,概率还是菜,一看概率题就不想做了。先仔细分析一波再看看,其实50分挺好拿。看了可怜的代码,你发现他把树状数组求前缀写成了求后缀。因为本题所有的答案都在mod 2意义下,所以当可怜求区间和(l,r)的时候,只是原来的r变成了l-1。因此可怜答案正确的概率就是l-1与r相同的概率。还有一...原创 2019-03-19 07:35:15 · 181 阅读 · 0 评论