自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Eirlys的博客

博客已挪到新窝https://www.cnblogs.com/Eirlys/,这里不再更新【蒟蒻qq:1060809101,请注明备注】...

转载 splay tree

类别:二叉排序树 空间效率:O(n) 时间效率:O(log n)内完成插入、查找、删除操作 创造者:Daniel Sleator和Robert Tarjan 优点:每次查询会调整树的结构,使被查询频率高的条目更靠近树根。 注:所有图片来自wiki。 http:/...

2016-12-21 09:25:48 356 0

转载 平衡树之splay讲解

原文作者为BLADEVIL学长:http://www.cnblogs.com/BLADEVIL/p/3464458.html  首先来说是splay是二叉搜索树,它可以说是线段树和SBT的综合,更可以解决一些二者解决不了的问题,splay几乎所有的操作都是由splay这一操作完成的,在介...

2016-12-20 19:52:33 736 0

原创 求SG模板(附:HDU1848 &HDU1536)【pascal】

关于SG函数的理论知识以及理解,请见这里,目前我没有看见比这个说得更棒的=w= 这里只是用来贴模板的 首先定义mex(minimal excludant)运算, 这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数。 例如mex{0,1,2,4}=3、mex{2,3,5}=0、me...

2016-11-07 19:49:11 342 0

转载 博弈问题及SG函数(怒赞,耐心地仔细看一定能看懂)

博弈问题 若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多。(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需要看“博弈论”的时候。) Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规...

2016-11-07 10:50:40 426 0

原创 尼姆博弈 (附:HDU1850)

尼姆博弈: 有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。 这种情况与二进制有着很大的关系, 我们用(a,b,c)来表示某种局势, 那么(0,0,0)必然为奇异局势, (0,n,n)也是种奇异局势。 因为如果对手在其中一堆取m个石子...

2016-11-07 10:02:04 328 0

原创 威佐夫博弈(附POJ1067)

威佐夫博弈: 有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。 我们用(ak,bk)(ak局势。 如果甲面对局势(0,0),说明甲输了,我们把这种情况叫做奇异局势。 现在的问题我给你一个局势(a,b),我们怎么判断它是不是奇...

2016-11-07 09:36:18 501 0

原创 巴什博弈 (例:HDU1846&HDU1847&HDU2188&HDU2149)

巴什博弈: 只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。     显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。换句话说,也就是面对这个局面的先手必输(谁面对这个局面谁一...

2016-11-07 09:33:28 394 0

转载 搞懂树状数组

引用请注明出处:http://blog.csdn.net/int64ago/article/details/7429868       写下这个标题,其实心里还是没底的,与其说是写博帖,不如说是做总结。第一个接触树状数组还是两年前,用什么语言来形容当时的感觉呢?……太神奇了!真的,无...

2016-10-29 07:12:39 261 0

原创 Fibonacci数列

Fibonacci数列, 一个让了解它的人无数次称赞它的神奇并且让人深深着迷的数列 一个让不了解它的人无数次惊叹它的规律并且让人倍感呵呵的数列 一、公式 1、递推公式:f[i]=f[i-1]+f[i-2] 2、通项公式: (一个完全是自然数的数列的通项公式却是用无理数表达的=w=) ...

2016-10-26 13:54:38 485 0

原创 快速乘法&快速幂&矩阵快速幂简单讲解

快速幂算法可谓是基础但极其巧妙而优美并且非常有用的的一类算法=w= 这里介绍三种相关应用:1、快速乘法 2、快速幂 3、矩阵快速幂 一、整数运算 (a*b) mod c == ( (a mod c) * (b mod c) ) mod c 对于2进制,2^n可用1后接n个0...

2016-10-26 00:25:27 895 0

原创 链表学习笔记

链表学习笔记链表的定义和特点链表定义链表特点链表分类链表的实现 链表的定义和特点 链表定义 和数组一样,链表也是一种线性表。 从内存结构来看,链表的内存结构是不连续的内存空间,是将一组零散的内存块串联起来,从而进行数据存储的数据结构。 每个结点包括两个部分:一个是存储数据元素的数据域...

2019-12-03 16:37:24 61 0

原创 洛谷 P1629 spfa + 正难则返(反向建图)

题意:n个点,m条有向边,求从点1到各点再从各点回到点1的最小路程和 从点1到个点——单源最短路 从各点回到点1——由于是单向边,所以去和回所经过的路程可能不一样且都回到1——反向建图,重新转化成1到各点——单源最短路 #include<stdio.h> #include<...

2019-09-23 09:04:12 77 0

原创 洛谷P3905 Floyd

题意:n个点,m条边,每条边有自己的权值,删除其中d条边,问重新使点A到点B联通所需要恢复的边的最小权值和 这个数据范围, 只和删除的边的边权有关,不删除的边只需要记录联通情况即可 以删除的边做floyd搞起 将原来就有的m条边边权记录下来,f中记录成0——表示两点可以联通且经过不需要代价...

2019-09-22 19:20:59 41 0

原创 洛谷 P1090 合并果子 堆维护动态最小值

题意:n个数,每次任取两个数合并,合并两个数的代价即为两数和,直至只剩下一个数,即进行(n-1)次合并。求代价和最小 贪心,每次合并最小值和次小值(取两次当前最小值),并将合并所得的新数加入比较 利用堆动态维护最小值 #include<stdio.h> int n; int ...

2019-09-20 23:24:44 60 0

原创 洛谷 P2863 tarjan求强连通分量个数

题意:给定一个n个点,m条边的有向图,求大小大于1的强连通分量个数 tarjan模板 #include<stdio.h> #include<string.h> #define maxn 10010 #define maxm 50010 int time = 0, t...

2019-08-11 16:57:19 52 0

原创 常用排序总结——比较排序

常说的排序一般指内部排序算法,即记录在内存中进行排序 排序大体分为两种: 比较排序,时间复杂度O(nlogn)~O(n^2),主要有:冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序 非比较排序,时间复杂度:O(n),主要有:基数排序、计数排序、桶排序 排序算法的稳定性 排序算法的...

2018-10-08 22:19:29 220 0

原创 noip2017提高组初赛(答案+选择题题目+个人分析)

被学弟学妹们逼着填坑的我瑟瑟发抖... 一、单项选择题(共15 题,每题1.5 分,共计22.5 分;每题有且仅有一个正确选项) 1. 从( )年开始,NOIP 竞赛将不再支持Pascal 语言。 A. 2020 B. 2021 C. 2022 D. 2023 C 这让学Pascal的我...

2018-06-12 14:29:01 41016 19

原创 bzoj 3339 线段树离线处理

题意:给定一个n个数的序列,多次询问,每次询问区间[l,r]的mex 直接暴力显然不可 区间[l,r]和区间[l',r']mex的情况: (1)[l,r]和[l',r']的mex值不同:[l,r]的mex值在[l',r']中出现 或...

2017-05-04 10:46:28 570 0

原创 bzoj 3943 最大生成树

题意:给定n个数,每次任选两个数,将这两个数的xor累加到ans里并删除其中一个数,重复操作直到只剩一个数,求ans的最大值 ...一开始sb的写了个暴力贪心,在改了1h对拍后才发现naive的贪错了... 于是果断放弃挣扎 如果把比赛的两个人之间连边的话,n-1次操作后就会得到一棵树,实质...

2017-05-04 09:40:54 424 0

原创 bzoj 3132 二维树状数组

题意:一个n*m初始为空的矩阵,资磁两种操作:(1)某个子矩阵的值都增加c (2)输出某个子矩阵的权值和 用a[i,j]表示(i,j)~(n,m)的增量,则对于(1,1)~(x,y)的权值和ans ans=sigma(a[i,j]*(x-i+1)*(y-j+1))(1       =sigm...

2017-05-04 07:47:41 426 0

原创 bzoj 1046 dp

题意:给定序列ai,m个询问,每次询问是否存在长度问len的上升子序列,如果存在多个输出位置字典序最小的那个 判断是否存在长度为len的上升子序列只需要判断len与最长上升子序列的大小即可 对于这种最后要求字典序最小的答案自然是尽量把字典序小的放前面 那么我们就需要判断当前位置能否放在答...

2017-05-02 17:18:16 350 0

原创 bzoj 1016 kruscal+乘法原理

题意:求n个点、m条边的不同的最小生成树的方案数 每种边权的边数量固定、作用固定 先做一遍最小生成树,求出每种边权在最小生成树中的数量num[i] 再从小到大对每种边权进行dfs,求出对于第i种边权,有多少种满足num[i]的取法 根据乘法原理乘上即可 对于已经处理完的第i种边权,把该种...

2017-05-02 15:50:03 363 1

原创 bzoj 1211 prufer编码+排列组合

题意:n个点,允许任意两点之间连边,给定每个点的最终度数,求所有满足要求的树的个数 bzoj 1005的简化版,关于prufer序列及答案化简请戳(我才不说我是懒得写了呢...) var ans :int64; i,j ...

2017-05-02 11:29:17 250 0

原创 bzoj 1005 prufer编码+排列组合+高精

题意:n个点,允许任意两点连边,给出某些点最终的度数,求所有满足要求的树的个数 先介绍prufer编码: (一)将树转成prufer编码 任意一棵n个点的树都会转成长度为(n-2)prufer编码 度数为m的点,在prufer编码中出现的次数为m-1 第i布时,删去叶子节点中标号最小的点及与它相连...

2017-05-02 11:23:05 355 0

原创 bzoj 4031 矩阵树定理

Description 你突然有了一个大房子,房子里面有一些房间。事实上,你的房子可以看做是一个包含n*m个格子的格状矩形,每个格子是一个房间或者是一个柱子。在一开始的时候,相邻的格子之间都有墙隔着。 你想要打通一些相邻房间的墙,使得所有房间能够互相到达。在此过程中,你不能把房子给打穿,或者打通...

2017-05-02 08:18:21 329 0

原创 bzoj 2275 Fibonacci博弈 齐肯多夫定理

题意:两个人进行Fibonacci博弈,若先手要有必胜策略,求他第一次至少要取多少个 由Fibonacci博弈可知,如果当前石子数是fibonacci数,则先手必败,所以此时当前的先手必须全部取走 齐肯多夫(zeckendorf)定理:任何一正整数都能拆成一堆互不相同的正整数的和,且一定存在一...

2017-05-02 07:34:38 432 0

原创 bzoj 3594 树状数组

题意:给定一个n个数的序列,可以最多任意选择k个区间并将区间内的数都加1,求操作后LIS的长度 我们用f[i,j]表示前i个数被操作k次后LIS的长度 f[i,j]=max(f[k,l])+1 (1 三维偏序..用二维树状数组优化取max的过程 注意:用二维树状数组第一维的上界是max(a...

2017-04-25 14:29:17 348 0

原创 bzoj 2705 欧拉函数

题意:给定一个n,求sigma(gcd(i,n))(1 显然,sigma(gcd(i,n))=sigma(g*f[g]) (n mod g=0) ,其中f[g]表示gcd(i,n)=g 的个数 g可以通过O(sqrt(n))的时间枚举出来,关键是求f[g] f[g]=sigma(1) (gc...

2017-04-20 18:07:29 306 0

原创 bzoj 2190 欧拉函数线性筛

根据图显然如果我们沿着对角线把它切开,新形成的这两部分是对称,每一部分的答案为sigma(phi(i)) (1 那么整体的答案ans=2*sigma(phi(i))+1  (对角线上只能看到一个点(1,1)) (1 线性筛1~n-1的欧拉函数即可 var n ...

2017-04-20 17:42:35 255 0

原创 bzoj 3689 trie树+堆

题意:给定一个非负整数序列,两两异或,求前k小的异或值 显然,如果一个数想和其他数异或尽量小,肯定是化为二进制后,从最高位起能选这一位相同的就选能和这一位相同的,实在没有再选和这一位不同的(当这一位不同,异或后的答案一定有2^i),这一位确定后再看下一位 那么我们就对所有数的二进制建trie树...

2017-04-20 14:50:13 264 0

原创 bzoj 2453 && bzoj 2120 分块

题意:给定一个序列,支持两种操作:(1)多次询问某个区间所含数字种类数 (2)单点修改 强行分块... 对每个位置维护一个pre数组,表示当前位置颜色的上一个位置 如果pre[i] 每个块内对pre数组排序, 询问时,在整块里每次二分找到l的严格下界,加到答案里;两边的散块暴力找 对于...

2017-04-19 08:16:03 227 0

原创 bzoj 2594 LCT+离线处理+Kruscal

题意:给定n个点、m条边的无向图,支持两种操作:(1)删去一条边 (2)询问当前图中(当前存在的边)最小生成树上的最大边权 动态维护最小生成树 如果暴力LCT套Krusacal,简直可以直接T到下辈子了.. 考虑删边离线,倒着做就变成了添边 先求出删去所有需要删去的边后的的最小生成树,倒着...

2017-04-18 21:25:02 322 0

原创 bzoj 3282 LCT

题意:N个点,每个点有一个权值,支持四种操作: (1)询问x到y的路径上的点的权值xor和 (2)连接x到y (3)删除边(x,y) (4)将x的权值改成y LCT维护一下即可 var n,m,op,x,y :longint; i ...

2017-04-18 21:05:53 242 0

原创 bzoj 1180 LCT

给出n个结点以及每个点初始时对应的权值wi。起始时点与点之间没有连边。有3类操作: 1、bridge A B:询问结点A与结点B是否连通。如果是则输出“no”。否则输出“yes”,并且在结点A和结点B之间连一条无向边。 2、penguins A X:将结点A对应的权值wA修改为X。 3、exc...

2017-04-18 20:58:17 208 0

原创 bzoj 2809 左偏树

题意:给定一棵n个点的树,每个点有各自的代价和价值,对以每个点为根的子树里最多能选多少点使得这些点的代价和不超过限制 乍一看是维护代价小根堆,能选小的就选小的,然而复杂度原地爆炸 那么换个角度,一开始对一个子树全选,最少丢弃多少点使得它们的代价和不超过限制 显然是维护一个代价的大根堆 我们...

2017-04-18 08:13:16 269 0

原创 bzoj 3887 tarjan+拓扑排序

题意:给定一张有向图,从1开始随便走最后回到1,有一次机会可以反向沿着某条边走一次,求最多能经过多少个点,(每个点最多对答案贡献一次) 如果不能反向走,那么答案就是1所在的强连通分量的大小 当我们反了一条边后,答案就是反边后含1所在强连通分量的环 如果我们断开我们所反的边和1,那么会形成两部...

2017-04-17 20:51:50 281 0

原创 和平委员会 2-sat

按照2-sat的套路直接写就好了...由于要求输出字典序最小的方案数,所以在新图上处理的时候按字典序最小的拓扑序进行染色(不用dfs进行传递) uses math; var n,m,l,x,y,tt :longint; time,top,size :lo...

2017-04-17 14:33:58 549 0

原创 bzoj 3155 树状数组

题意:对序列ai维护一个前缀和序列Si,再对Si维护一个前缀和序列Ti,支持两种操作: (1)修改ai的值 (2)查询Ti ∑((x - i + 1) * ai) = ∑( (n - i + 1) * ai ) - (n - x) * ∑ai 分别用两个树状数组维护 var ...

2017-04-16 16:01:07 220 0

原创 bzoj 3333 树状数组+线段树

题意:给定一个序列,每次选择一个位置,把这个位置之后所有不大于这个数的数抽出来,排序,再插回去,求每次操作后的逆序对数 对于我们每次选择的位置p,无论怎么操作,都不会对位置p之前的数的逆序对造成影响,也不会对[p,n]中大于a[p]的数的逆序对造成影响 同时很容易发现,没进行一次操作逆序对数都...

2017-04-16 15:13:11 244 0

原创 bzoj 2762 树状数组

题意:给出一些形如 ax+b (1)新加入一个不等式 (2)删除一个不等式 (3)询问当x=k时满足的不等式的个数 对于每一个不等式,通过变形就可以得到使它成立的x的范围 那么就变成区间修改,单点查询,树状数组维护就好 注意:(1)讨论a=0、a>0、a            ...

2017-04-16 14:54:02 183 0

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