自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

转载 Splay Tree

\(Splay Tree\)\(Splay\)是一种非常诡异的数据结构核心:二叉搜索树优化:复杂度均摊\(O(nlog n)\)优化操作:Splay操作在刚学\(Splay\)时不建议看它的势能分析,因为并没有什么卵用引入二叉搜索树(\(BST,Binary Search Tree\)):核心性质:左儿子小于自己,右儿子大于自己的一棵二叉树缺陷:对于不同序列树高会呈现$...

2019-09-26 10:55:00 120

转载 AC自动机总结

AC自动机总结AC自动机简述功能多模板串对单个或多个串的匹配问题主体思想原理同\(kmp\) , 在\(trie\)树上使用变种的\(kmp\)实现需要数组 : \(trie[N][26],fail[N]\)\(fail\)即我们所说的失配函数,\(trie[]\)则略有变更准确一点得说,\(fail\)函数是不需要知道后继字母的失配而\(trie\)树上的节点经过处...

2019-09-16 21:53:00 156

转载 树形dp专题总结

树形dp专题总结大力dp的练习与晋升原题均可以在网址上找到技巧总结1.换根大法2.状态定义应只考虑考虑影响的关系3.数据结构与dp的合理结合(T11)4.抽直径解决求最长链的许多类问题(T12)5.dp题最基本的考察是对题意模型的转化,以应用在各个方面6.前缀和等技巧优化dp7.树形背包是n*n的!T1 BZOJ1304 [CQOI2009]叶子的染色首先是对于固...

2019-09-08 13:32:00 280

转载 大力线段树

Skills For A Better Segment TreePart 1: Faster1.非递归线段树你可以不用zkw,只用每次单点操作时直接像打二分样写下去就好了以单点求和为例int Que(int p,int l,int r,int x){ if(l==r) return Sum[p]; int mid=(l+r)>>1; Down...

2019-09-02 15:01:00 99

转载 容斥专题总结

容斥专题总结A:How many integers can you find过于水,但是有细节\[\ \]\[\ \]B: Eddy's爱好枚举k的值,直接开k次方根,为了防止爆精度,我手写了一下然后就是对于因数容斥,或者是直接套莫比乌斯系数const int N=4e5+10;const ll INF=(1ll<<62)-1;ll n;ll qs...

2019-08-24 08:02:00 205

转载 牛客提高组模拟赛4

牛客提高组模拟赛4T1 麻将这题应该做法有很多吧,我提供一种奇怪的做法将每一行连续的1提出来,形成一个个区间\(l,r\)实际是求对于每一\(1\leq l \leq r \leq m\),能覆盖它的\(l,r\)有多少个怎么求呢?首先我们将这些区间存储在每个左端点上循环枚举左端点,每次将右端点的sum++,维护一个后缀即可,累加得到每个右端点的答案直接这样做,复杂度应该...

2019-08-22 13:31:00 95

转载 Johnson算法:多源最短路算法

Johnson算法请不要轻易点击标题一个可以在有负边的图上使用的多源最短路算法时间复杂度\(O(n \cdot m \cdot log \ m+n \cdot m)\)空间复杂度\(O(n+m)\)这个神奇的算法综合利用了Dijkstra算法和Bellman-Ford算法(不要慌,虽然有负边但Dijkstra可以跑!)在开始讲解之前,我们将其与floyd进行比较\(flo...

2019-08-19 18:54:00 342

转载 HDU 6212 Zuma

Zuma这个题没有素质!它卡常!我发现网上很多人的题解都写得很奇怪,也不好确定正确性,所以我借这篇题解表达一下愚见定义$ dp[i][j][0...4]$表示0:消完了1:还剩1个02:还剩2个03:还剩1个14:还剩2个1转移极其繁琐卡常技巧:相邻相同的可以压成一个块const int N=410;#define chk(a,b) (a>b&&am...

2019-08-12 12:02:00 118

转载 AtCoder Beginner Contest 137 F

AtCoder Beginner Contest 137 F数论鬼题(虽然不算特别数论)希望你在浏览这篇题解前已经知道了费马小定理利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\)\[x=i,g(x)=0\]\[x\ne i ,g(x)=1\]则我们可以构造\[f(x)=\sum^{i=0}_{P-1}(-a_i*(x-i)^{P-1}+a_i)\]对于第\...

2019-08-11 08:58:00 104

转载 NOIP 2013货车运输

当然这题有很多做法,但是我看到没有人写DSU的很惊奇按照之前做连双向边题的经验,这题可以用并查集维护联通然后对于每个询问\(x,y\),考虑启发式合并当两个点集\(x,y\)合并时,一些涉及到其中点的询问可以被解决,而遍历\(x,y\)中的询问集其实是等价的,所以可以直接用启发式合并存下这个点集涉及到的询问,在合并时我们要遍历数组,所以可以同时完成对于询问的回答typedef l...

2019-08-10 17:59:00 101

转载 区间dp专题练习

区间dp专题练习题意1.Equal Sum Partitions? 这嘛东西,\(n^2\)自己写去\[\ \]\[\ \]2.You Are the One感觉自己智力被吊打\(dp[i][j]\)表示 , 对于当前的一个空栈 , \(i\)到\(j\)这一段都出栈的最小花费显然是长得一副区间(诡)dp(异)的样子 , 如何转移呢?(建议自己想想吧)对于一个\(dp...

2019-08-10 12:15:00 160

转载 UOJ14 DZY Loves Graph

UOJ14 DZY Loves Graph我的解法:启发式并查集+状态建树观察题目的三种操作​ 1. Add a b: 表示在 a 与 b 之间连了一条长度为 i 的边(注意, i是操作编号)。保证 1≤a,b≤n。​ 2.Delete k: 表示删除了当前图中边权最大的k条边。保证 k 一定不会比当前图中边的条数多。​ 3.Return: 表示撤销第 i−1 次操作。保证第 ...

2019-08-06 13:46:00 102

转载 离线赛游记

纪念当年曾经爆过的细节1.高精进位爆炸while(top[x]!=top[y]){ if(dep[x]<dep[y]) swap(x,y);//应该比较dep[top[x]]和dep[top[y]]... res+=Que(L[x])-Que(L[top[x]]-1); x=tf[top[x]];}3.贪心没有对拍!4.树状数组查询时下标溢出...

2019-08-04 16:34:00 65

转载 Xor-matic Number of the Graph-CodeForces - 724G

Xor-matic Number of the Graph-CodeForces - 724G线性基棒题建议做这题前先看看线性基的概念,然后A掉这道题--->路径最大异或和这两个题都用到了一个相同的性质:任何一条路径的异或值都可以随意地与任意多个环相接对于这道题来说,每一条路径都有它独立的贡献,并且都需要和每一个异或和不同的环相接处理环异或和不同自然使用线性基判断插入是...

2019-08-01 21:28:00 153

转载 线性基学习笔记

线性基专题学习(仅以此篇表愚见)引入:最大异或和(笔者希望你在看这个之前学过了高斯消元)我们先把线性基放到一边,如何用高斯消元解决呢?(下面的陈述可能有些问题,某些细节和实现希望读者自己想一下)---->从高到低确定每一位是否能选,即设这一位方程的右边为1,解当前的方程组判断是否有解,一共是解60次方程组\(O(n \cdot 60^3)\)---->优化:保...

2019-07-31 15:37:00 105

转载 状压dp学习笔记

主要原理(常用) 1<<n用二进制位枚举状态,以达到压缩状态的效果一个简单的例题看到\(m\)的范围应该能想到压进1<<10里唯一的细节:因为这个状态不好排序,所以要分层,最好用滚动#include<bits/stdc++.h>using namespace std;int n,T,m,x,y,f[2][1100];int main()...

2019-07-30 13:02:00 72

转载 数位dp技巧

一个奇怪的东西正反都能dp!:正常我们数位dp都是从高到低,以这样的方式保证其小于给定数->ll n;int num[N],l;ll dp[];ll dfs(int p,int lim){ if(p==0) return 1; if(!lim&&~dp[]) return dp[]; int Uplim=lim?num[p]:9;...

2019-07-30 12:44:00 110

转载 LCA的几种做法

P3379 LCA$ 1:$蜗牛爬式void dfs(int u,int fa) { f[u]=fa;//预处理father for(int i=head[u]; i; i=e[i].nxt) if(e[i].v!=fa) { int &w=e[i].w,&v=e[i].v; dis[v]=dis[u...

2019-07-28 16:18:00 262

转载 ZOJ 3494 BCD code

BCD code 题解 -> 传送门### AC自动机请滚蛋 , 而是真正的字符串\(dp\)+数位\(dp\)注意到所有的数位\(dp\) , 都是从首位开始加数字的 , 那么在每一次加入过后 , 若这段后缀字符串已经与某个字符串相同 , 这个状态一定不会继续而它的后缀与某一字符串相同的条件 , 一定是与某个字符串的某一段前缀相同!所以 , 我们定义某一个字符串的状态为它...

2019-07-28 16:16:00 182

转载 CF715C Digit Tree

\(Dsu\)做法详解首先 , \(Dsu\)原理应该不必多说 , 即取重儿子 , 将轻儿子合并统计答案时 , 我们将以 当前所在点\(u\) 为\(LCA\)的点答案进行统计### 但是,这题用 \(Dsu\) 做的难点在于储存 , 所以我们重点讲储存我们先暂且不考虑取模首先 , 容器是全局的 , 存的值也必然是全局的然而 , 我们所知的全局的值只有两种路径,即\(u\)到...

2019-07-28 16:14:00 292

转载 线性预处理Mod_Inv

\[ \ \]\[ \ \]------------ll Inv[N]={1,1};for(int i=2;i<N;i++) Inv[i]=(MOD-MOD/i) * Inv[MOD%i] %MOD\[ \ \]\[ \ \]是不是很妙啊证明我不会(但是我会背代码qwq)我们瞄一眼 \(Mod \ Inv\)的定义\[ a \cdot p \ \equiv...

2019-07-28 16:09:00 493

转载 Dynamic_Rankings(动态区间第k大)

ZOJ - 2112\[ \ \](那些说这道题是树状数组套主席树的人一定对主席树有误解!)这里我们用树状数组套线段树来解决来写首先 , 我们需要有n棵线段树(不是\(n^2\)空间,别慌)我们用这些线段树存储值域$ [l,r] $内数的个数基于主席树的思想,我们的线段树是要相减的,记录的是前缀由于要更新前缀,我们必须快速更新,所以采用树状数组来写事实上,这里线段树的本质...

2019-07-28 16:07:00 122

转载 主席树学习专题

Count On A Tree建立线段树记录每个\([1,u]\)路径上的前缀中在值域\([L,R]\)中的个数查询时 计算 \(cnt[x]+cnt[y]-cnt[lca]-cnt[fa[lca]]\)const int N=1e5+10,P=1e9+7;int n,m;int s[N*20],ls[N*20],rs[N*20],T[N];int cnt;struct...

2019-07-28 16:06:00 81

转载 Trie学习笔记

Trie(字典树)基本数据结构实际是:对于每个字符串组的每一个不同前缀建立节点基本代码void Insert(char *s,int p){ int now=0; int l=strlen(s); rep(i,0,l-1){ int k=s[i]-'a'; if(!nxt[now][k]) nxt[now][k]=++ncn...

2019-07-28 16:00:00 110

转载 斜率优化学习笔记

题解并不是特别详细 , 代码可能会有细节问题 ,题目排列比较诡异方法总结:一、列出暴力dp的式子 用\(dp[i]=dp[j]....\)二、找出里面的量,通常分三种:1只与\(i\)有关2.只与\(j\)有关的3.对于同时与\(i,j\)有关的三、固定 \(i\) ,对于\(x,y\)属于\(j\)的范围且 \(y \leq x\) ,设\(x\)比\(y\)更优,列出不...

2019-07-28 14:04:00 379

转载 5098: [BZOJ1098][POI2007]办公楼biu

5098: [BZOJ1098][POI2007]办公楼biu没有数据结构就很棒一个看上去非常玄学的代码const int N=1e5+10,M=2e6+10; int n,m;int fa[N];int Find(int x){ return fa[x]==x?x:fa[x]=Find(fa[x]); } vector <int> G[N];type...

2019-07-28 13:58:00 74

转载 [POI2008]PER-Permutation

[POI2008]PER-Permutation 带重复的康托展开!根本不需要中国剩余定理就可以A掉!看完题面你会惊人地发现这好像一个康托展开!(显然是不同的啦)首先我们来看康托展开这个东西在数组为排列时怎么打------->度娘int cantor(int a[],int n){//cantor展开,n表示是n位的全排列,a[]表示全排列的数(用数组表示) in...

2019-07-28 13:57:00 183

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除