自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

私は Mocha!!

【AFO】私はこの世界を深く愛している

  • 博客(123)
  • 资源 (2)
  • 收藏
  • 关注

原创 AFO

AFO一年了,才mark这篇blog,算是空了很多行的句号吧。那么就这样吧,拜拜!

2019-08-31 16:18:50 467 2

原创 [BZOJ3037/CH6401]创世纪(贪心)

传送门首先分析题目所给的树结构,将x与x控制的点a[x]连一条有向边,原图就变成了一个内向树森林。这题放在了基环树的tag下,然后正解是一个树形dp,但是我思考了一下,我发现可以从内向树的最外圈一层一层往里面推进,但是转移的时候根本不需要dp,直接贪心就可以了。对于一个入度为0的点x,由于x无法被控制,所以只能不选。那么选择x控制的节点a[x]投放一定是最优的。 那么在选择a[x]之后,a...

2018-10-29 10:05:57 568 1

原创 [BZOJ1791][IOI2008]岛屿Island(基环树的直径)

传送门    先转换一下题目所给的图:    给一个n个点n条边的图,不一定连通,但是不连通的地方可以用没有权值的虚边连接起来,既然可以任意连虚边那么我们就可以把原图中的一个个块分开处理。    然后分析这是什么图,因为一定有n个点n条边所以假如两个点之间没有边那么某一个块中一定会多出一条边来满足数量有n条。所以原图中每个连通块的边数=点数,刚好与基环树的性质契合,所以原图=基环树森林。...

2018-10-28 18:57:31 822

原创 [POJ3417]Network/闇の連鎖(树上差分)

题目描述传说中的暗之连锁被人们称为DarkDarkDark。DarkDarkDark 是人类内心的黑暗的产物,古今中外的勇者们都试图打倒它。经过研究,你发现DarkDarkDark呈现无向图的结构,图中有 NNN 个节点和两类边,一类边被称为主要边,而另一类被称为附加边。DarkDarkDark 有 N–1N – 1N–1条主要边,并且DarkDarkDark 的任意两个节点之间都存在一条只由主...

2018-10-24 16:09:59 422 1

原创 [CH6202]黑暗城堡(最短路径生成树)

传送门    通过学习我们可以发现原题目要求的树结构就是“最短路径生成树”,什么是最短路径生成树呢?就是一张图的源点到图中的所有结点的最短路径构成的树,为什么他满足树结构呢?因为假设有n个点,因为是最短路径一定只有n-1条边把他连起来。    那对于本题,每个点的D[i]D[i]D[i]可以先跑一遍DijkstraDijkstraDijkstra得出来,接下来思考如何计数。    计数方法...

2018-10-23 08:22:24 1299

原创 Floyd的三种有趣的玩法

   众所周知,Floyd是一个思路和实现都很简单的多源最短路径算法,原理是一种动态规划的思想,这里就不赘述太多,在做《算法竞赛进阶指南》中关于Floyd的题目中遇到的三种Floyd可以解决的问题,建议大家在阅读本文之前先熟悉Floyd算法。1、传递闭包什么是传递闭包?   给定一些元素和一些二元关系,且他们具有传递性(也就是假设关系有二元关系⨁\bigoplus⨁,对于元素a,b,ca,...

2018-10-19 08:21:53 397

原创 [BZOJ2200][Usaco2011 Jan]道路和航线(拓扑排序+Dijkstra)

传送门看上去就是要到最短路,但是这题数据经过构造会卡SPFA(大家都嫌弃他嘤嘤,but可以用SLF优化水过),且因为有负权会卡Dijkstra。那么我们观察题意,发现只有单向边是有负权的,双向边没有负权,且单向边不会构成环!那么我们就可以把原图看作许多个由双向边组成的连通块,连通块由单向边互相连在一起形成一个DAG图,对于DAG图 我们就可以用拓扑序在线性时间内遍历求出答案,对于连通块内的最...

2018-10-18 16:40:39 471

原创 [BZOJ1233][Usaco2009Open]干草堆tower(单调队列优化)

传送门题意搞skr人…,其实就是堆方块:有n(n<=100000)个干草,每堆有个宽度,现在要且分成若干段,把每一段的干草按顺序堆起来形成一个多层的干草堆(所以下标越小的干草堆放在越下面)且宽度要逐层非严格递减(上面一层的宽度<=下面一层的宽度),求最多可以放多少层。好神啊这题。。题意看起来不复杂,所以我们很容易想到一个贪心:从上往下倒着考虑,假设我们已经知道上面一层的宽度...

2018-10-15 09:36:22 404

原创 [HDU2196]Computer(树形dp+二次扫描换根法)

传送门题意:给出一棵树,求离每个节点最远的点的距离一开始以为是树的直径。。然后看清题意之后就可以容易看出是树形dp了,对于这种无根树且需要求每一个点的情况需要运用二次扫描换根法。那么我们来设列dp方程吧,我们思考当前点x的最远点距离是怎么得到的,只有两种情况:1、来自他的子树(图中红色)2、来自他的子树以外的树(图中蓝色,以下简称父亲部)第一种情况的话可以直接自底向上树形dp得到每...

2018-10-09 21:29:00 859

原创 [BZOJ1237][SCOI2008]配对(贪心+dp)

传送门题意:n 个整数A[i]和n个整数B[i]。把它们配对,要求所有配对的整数差的绝对值之和最小,不允许两个相同的数配对。(n<=100000)首先排序两个数组。然后我们考虑一下简单的问题:如果两个相同的数允许配对的话,我们排完序之后每一位的一一对应配对就行了。但是现在不允许相同的数配对,那么我们就需要尽量交换相近的数使得我们交换所产生的代价尽量的小。但是如果相等的数很多会复杂度退化...

2018-10-01 17:53:57 372

原创 线性DP组题

线性dp体现为在线性空间上的递推,dp的阶段沿着各个维度线性增长,譬如说最长上升子序列,最长公共子序列就是最为简单的两个问题。1、[POJ2279]Mr.Young’s Picture Permutationshttp://poj.org/problem?id=2279由于行数k很小,所以我们可以用k个维度表示每一行的状态,设f[a1,a2,…,ak]表示每一行已经安排的学生人数,那么当每...

2018-09-26 10:14:57 361

原创 [poj3580]SuperMemo(splay终结题)

传送门题意:你需要维护一组数字,包括这样的几个操作:给出一个数字序列,有6种操作:1、 ADD l r d:区间[l,r]的数都加上d。2、 REVERSE l r : 将区间[l,r]中的数翻转 。3、 REVOLVE l r t :将区间[l,r]旋转t次,如1 2 3 4 5 旋转2次后就变成4 5 1 2 3 。4、 INSERT p x :在第p个数后面插入x 。5、D...

2018-09-23 08:52:36 479

原创 [poj1151]Atlantis & [poj1177]picture(扫描线)

玩一玩扫描线,这个东西还是很强力的,而且容易yy。但是就是细节很多,所以查错特别麻烦。推荐这篇blog: https://www.cnblogs.com/yangsongyi/p/8378629.html【poj1151】http://poj.org/problem?id=1151题意:在平面直角坐标系上有一些矩形,他们可能会互相重叠,求矩阵的并(也就是所有矩阵覆盖的部分)的面积。譬如...

2018-09-21 13:12:13 363

原创 [poj2828]Buy Tickets(树状数组求第k大)

传送门题意:i个人排队,对于第i个人,我们知道他排在第pi个人后面(可以插队)且他有一个权值val,我们需要输出排好之后每个人的权值。首先我想的是链表来模拟,但是发现由于p[i]指的是位置而不是编号,所以链表是只能O(n^2)的。那么怎么办呢?我们结合题目中给的样例解释来思考。我们发现一开始51站在第2个位置上但是后面来的33想站在第2个位置上并把他挤开最终33站在了第2个位置...

2018-09-20 11:48:48 313

原创 [poj1182]食物链 & [poj2912]Rochambeau (边带权和扩展域并查集模型)

传送门【poj1182】传送门【poj2912】这两题之所以可以放在一起讲,一是他们的所求内容高度相似,其次是他们都属于边带权或者拓展域的并查集的基本模型。这两题的核心思路就是维护三个集合A,B,C,使得他们里面的元素满足A吃B,B吃C,C吃A。 那么这样的具有传递性的关系以及维护他们的连通情况考虑并查集求解。边带权解法:先来说边带权的解法,所谓边带权就是并查集的边上带有权值表示,同时...

2018-09-19 20:31:36 386 1

原创 并查集的路径压缩和按秩合并

记录一下并查集的两种优化:路径压缩路径压缩是并查集最常用的一个优化之一,他可以优化查询的速度。我们发现,在普通的并查集中,如果我们要询问一个元素所属哪个集合,我们只关心集合的代表是谁(也就是并查集树形结构中的树根是谁),而并不关心树的形态。那么我们可以在每次执行往上找根节点的时候,把路径上所有的元素的父亲全部指向树根(也就是通过改变树结构,降低了树的高度,增快了我们的查询速度),这样的...

2018-09-08 16:49:46 1557 7

原创 数论知识点

稍微整理一下蓝书上数论章节的知识点1、一个数的约数和=(1+p1+p12+...+p1c1)∗(1+p2+p22+...+p2c2)∗...∗(1+pk+pk2+...+pkck)(1+p1+p12+...+p1c1)∗(1+p2+p22+...+p2c2)∗...∗(1+pk+pk2+...+pkck)(1+p1+p1^2+...+p1c1)*(1+p2+p2^2+...+p2^c2)*.....

2018-09-07 17:27:25 614

原创 [洛谷P4372][USACO18OPEN]Out of Sorts P(乱搞)

https://www.luogu.org/problemnew/show/P4372  模拟赛的题,考场上看着是最可做的。洛谷评分是NOI+/CTSC是smg…   依旧是放我们模拟赛的题意:  世界上OI水平最高的奶牛bessie正在学习排序算法。她先后学习了冒泡排序和快速排序。众所周知,快排将序列分成若干段使得前一段的所有数都≤≤\leq后一段的所有数。我们称两段之间的分界点为...

2018-08-21 21:21:31 889

原创 [Codeforces741C]Arpa’s overnight party and Mehrdad’s silent entering(二分图染色)

http://codeforces.com/contest/741/problem/C题目描述   要不我就用这次模拟考的题面吧哈哈哈写的好有趣:   七夕节,有 对情侣围做在一个圆桌上吃饭。座位的编号为 1~2n(1<=n<=10^5) 。饭店老板作为大FFF团的一员,看着这一桌,身旁不知何时多了一根火把。 他想了想,觉得火把太暴力了,要让敌人从内部瓦解。于是,他决定让一...

2018-08-21 20:02:21 250

原创 质数和约数

质数【例题】Prime Distance(poj2689)   这题L,R范围很大,但是L,R差值在可以接受的范围内。因为一个数n的质因子不会超过n−−√n\sqrt{n},所以我们考虑线筛预处理R−−√R\sqrt{R}范围内所有的质数,在线筛的的同时标记L到R范围的合数。   如何标记:对每一个质数p,枚举一个倍数i,将i*p标记为合数。i的范围是⌊Lp⌋≤i≤⌊Rp⌋⌊Lp⌋≤i≤⌊...

2018-08-17 16:39:26 461

原创 搜索练习

1、靶形数独(传送门)就是poj3074的数独加上一个判断就好了,注意位运算的细节。#include<cstdio>#include<iostream>#include<cstring&am

2018-08-09 16:44:38 328

原创 A*与IDA*算法

A*  A*算法是基础的启发式算法,常使用“估价函数”减少选择来用于优化搜索的速度。对于当前的状态,我们知道当前已经用了的代价,那么我们可以设计一个估价函数fff来估计未来的状态,当前代价+未来代价作为这个状态的预估总代价。   那么这个估价函数值fff需要满足f(now)≤g(now)f(now)≤g(now)f(now)\leq g(now),其中now表示当前状态,g()表示实际需要花...

2018-08-08 20:39:05 824

原创 广搜与广搜变形

广搜【例题】Bloxorz(poj3322) 用一个三元组(x,y,lie)记录状态(x,y)为方块躺着的时候左或上的坐标以及立着的底坐标,躺着立着分情况处理滚动方向,注意判断边界即可。#include<cstdio>#include<iostream>#include<cstring>#include&a

2018-08-06 20:50:03 237

原创 迭代加深和双向搜索

迭代加深  当答案的层数较低,并且搜索的分支较多时,如果直接搜索会消耗很多时间。这时候可以进行多次搜索,每次搜索可以限制一个深度,如果我们在当前深度下搜索不到答案,就增加深度限制,重新搜索一边答案,这样“迭代”且“加深”的过程称为迭代加深。但他的缺点也很明显,每次需要重新搜索一遍,所以在答案的层数比较深的时候不建议使用。【例题】Addition Chains (poj2248) 需要...

2018-07-17 15:47:17 1753

原创 剪枝

【例题】Sudoku1(poj2676)  题意就是一个数独游戏。  爆搜,无剪枝可过。#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;int a[10][10];bool c

2018-07-14 11:38:30 381

原创 搜索基础

为了方便复习整理(凑博客数),决定把之前那篇《算法竞赛进阶指南0x20搜索》分开小节记录博客。这一节记录一些搜索的入门基础题目。0x21 树和图的遍历: 先放一点基本的代码void ins(int x,int y){ len++; a[len].x=x;a[len].y=y; a[len].next=last[x];last[x]=len; }//图的遍...

2018-07-14 11:37:23 396

原创 [POJ1190][NOI1999]生日蛋糕(搜索+剪枝)

传送门首先读题:   本题忽略ππ\pi只将它后面的有理数进行计算,其次对于表面积,整个蛋糕的上表面面积之和等于最大圆的底面积。所以我们只需要计算侧面积,最底那层计算底面积即可。  仍然是一道经典的搜索剪枝题目。我首先把题目所描述的(1~M从底向上)倒过来(1~M从上到底)方便处理,然后我们从下(最大那层)往上搜索。搜索思路:   那么我们首先爆搜,我们由于高度和半径下一层都要...

2018-07-14 11:20:08 377

原创 [POJ2185]Milking Grid(KMP求解最小覆盖问题)

传送门 题意: 求一个字符串矩阵的最小覆盖矩阵。覆盖矩阵是指,字符串矩阵的子矩阵通过复制平移的方式可以形成一个新的大矩阵使得原字符串矩阵成为他的子矩阵。如:    ABABA    CDCDC 他的最小覆盖矩阵为    AB    CD 因为将上面的矩阵复制平移后可以得到这样一个新矩阵    ABABAB    CDCDCD 则原矩阵是这个新矩阵的子矩阵。...

2018-07-07 10:57:15 401

原创 哈夫曼树(Huffman-Tree)的构造及应用

  本文以学习笔记的性质谈一种哈夫曼树较为严谨的贪心做法,哈夫曼树的应用将在往后补上。    有这样一棵k叉树,它的叶子节点有权值,第i个叶子节点权值为wi(wi>0)wi(wi>0)w_i(w_i>0),他的深度为lilil_i,要求最小化∑wi∗li∑wi∗li\sum w_i*l_i,这样问题的解称为k叉哈夫曼树。   为了最小化∑wi∗li∑wi∗li\sum w_...

2018-07-02 08:41:24 6845

原创 [POJ3784]Running Median(堆动态维护中位数)

传送门  这题需要用到一个名为:“对顶堆”的小技巧   我们以值建立一个大根堆,一个小根堆,假设我们现在的中位数是x,那么用大根堆来储存小于等于x的元素,用小根堆来储存大于x的元素,这样的话,大根堆的堆顶就是x,也就是现在的动态中位数。 那么也就是说我们保证大根堆里的元素都是小于小根堆的,你可以想象这两个堆是“顶”在一起的,他们是两个胖子互相挤来挤去,他们夹着的就是动态中位数,同时我们还...

2018-06-30 15:51:41 1177

原创 [BZOJ1150][CTSC2007]数据备份Backup(贪心+堆+链表)

传送门  这题真是一环扣一环,做了好久好久,好题啊!   首先通过题意我们可以敏锐的捕捉到:虽然可以跨楼相连,但是这样是没有意义的,因为相邻的两个点相连一定比跨楼相连更优。   我们将楼与楼之间的距离求出来(n-1个数)那么问题就转化为:在n-1个数中选k个数使得他们相加起来最小,且选了一个数后相邻的两个数不可以再选。   那也就是说,我们需要开一个小根堆维护最小值minn,如果选择...

2018-06-30 13:49:37 313

原创 【hihocoder#1384】Genius ACM(倍增+归并)

传送门  首先我们要知道校验值如何最大。显而易见的,当校验值最大时,一定是(最大和最小的差的平方)+(次大和次小的平方)……。   那么求解校验值就需要排序来辅助配对,那么我们可能会选择快排,我一开始也是这么想,但是这样是不行的(下文将解释)  其次,题目要求在一段数列中分成最少几段使得每段的校验值最大值不超过T,那么因为校验值是几个差的和,所以如果多了一个数那么校验值的最大值一定会...

2018-06-29 11:37:26 1008

原创 [POJ2559]Largest Rectangle in a Histogram(单调栈)

传送门题解: https://blog.csdn.net/qq1169091731/article/details/52006440写的敲棒!#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath&...

2018-05-07 14:01:48 178

原创 [HDU4699]Editor(对顶栈)

传送门 题意: 维护一个文本编辑器,里面的一个字符可以表示为一个数字,有五种操作: I x :在当前光标位置之后插入一个整数x,插入之后光标移动到x后 D :删除光标之前的一个整数 L :光标向前移动一个位置 R :光标向后移动一个位置 Q k :询问在位置k之前的最大前缀和,k不超过当前光标位置又见文本编辑器。。。 这回又是另一个编辑器,NOI那道Editor和AHOI那...

2018-05-07 13:30:58 535

原创 [BZOJ3170][Tjoi2013]松鼠聚会(平面几何)

传送门首先我们发现,在这题中上下左右斜八个方向的距离被定义为相等的,那么大概就是这样: 那么两点之间的距离实际上是一个切比雪夫距离。 切比雪夫距离表示如下: dis=max(|x1−x2|,|y1−y2|)dis=max(|x1−x2|,|y1−y2|)dis=max(|x1-x2|,|y1-y2|) 因为坐标的范围敲大,所以我们并不能直接使用切比雪夫距离。 那么我们有一个距...

2018-04-27 16:06:56 247

原创 [POJ1743]Musical Theme(后缀数组+二分 / 后缀自动机)

传送门复习了后缀数组。 首先因为转调我们需要对字符串作差。考虑二分+后缀数组的做法。 二分答案k,将连续的height[i]>=x的段分组,如果一组内sa的最大值与最小值的差>=k,则k可行。后缀自动机也是可以的。 因为right集合即为子串在母串中出现位置的右端点的集合,求出right集合就可以确定串的出现位置,那么求出每个点right集合中的最大值和最小值,如...

2018-04-26 20:56:40 317

原创 [BZOJ4516][Sdoi2016]生成魔咒(后缀自动机)

传送门学了一个下午+一个晚上+一个上午的后缀自动机。。 主要看的是clj的课件以及menci的博客 本来想写学习笔记的,然而要GDOI了,所以之后在写啦!首先我们知道SAM中一个节点vvv中长度最小和最大的子串的长度分别为min(v)min(v)min(v)和max(v)max(v)max(v),那么对于一个节点里面子串的数量就是max(v)−min(v)+1max(v)−min(...

2018-04-25 16:18:14 206

原创 [POJ2054]Color a Tree(贪心)

传送门 题意:有一棵树,每个节点都有一个权值Ci。现在要给每个点染色,第一个染根节点,其余的节点染色的时候其父节点必须已染色。每个节点染色会用掉一个时间单位,每个节点染色的代价是已经花的时间t*Ci。问染完全部节点所需要的最小代价。跟着HNOI2018D2T2到的这里,发现是元问题。 真没想到是贪心。。不过是一个经典的贪心模型。 可以看这篇题解http://www.cnblogs.c...

2018-04-24 11:02:56 594

原创 [BZOJ5288][Hnoi2018]游戏(暴力+随机化)

传送门首先我们考虑暴力做法。 考虑预处理,一开始把相邻的门没锁的点看作一个块(那么块中互相可以到达),记下左右端点。判断块左右的门锁在不在这个块里面,如果有就往左右拓展块,要不然就退出。 然而如果这样的话在最坏情况,也就是左右不停的跳的话是O(N2)O(N2)O(N^2)的。 怎么办呢?我们可以发现:按顺序枚举点拓展效率是非常低的,因为我们会扩展到之前的块。那么我们就可以每次随机一个...

2018-04-23 20:29:03 227

原创 [BZOJ5290][HNOI2018]道路(DP)

传送门Day2的题目顺序很有问题啊,竟然把最简单的题放T3。。 不难发现是一个完全二叉树,然后公路连左孩子,铁路连右孩子。 就是一个类似于一个树形dp的东西,突破的关键就在原题中的一个隐晦的条件 任意乡村可以通过不超过40条道路到达首都。那么我们就可以dp:到每个乡村,需要经过多少条公路多少条铁路空间复杂度是20000*40*40的样子,时间复杂度也是相同的。转移用记忆化...

2018-04-23 17:02:09 273

[POJ2823]Sliding Window(单调队列)by_zgx优化最新版

我的博客链接:http://blog.csdn.net/CABI_ZGX

2016-10-11

[POJ2823]Sliding Window(单调队列)by_zgx

博客链接 http://blog.csdn.net/CABI_ZGX/article/details/52701138

2016-09-29

空空如也

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

TA关注的人

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