自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

既然弱小,就只顾变强就是了

不想Wrong,就不要给Wrong找到理由;不后悔尝试,但愿每个尝试的结果都能Accept。

  • 博客(65)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 欧拉序求解LCA

奇怪的知识又增加了呢! 今天,我们来讲一下欧拉序的一个神奇的用处——求解LCA,这个神奇的方法求LCA有什么神奇的好处呢?它的预处理操作是的,但是查询操作是O(1)的。 好了,直入主题,首先,怎样求解欧拉序呢? 这幅图的欧拉序为:A - B - D - B - E - G - E - B - A - C - F - H - F - C - A 很显然的,我们能发现,任意...

2020-03-31 23:18:25 2211

原创 [JLOI2011]不等式组【离散化+树状数组+边界条件处理好题】

题目链接 首先,这道题首先让我认识到了边界条件的细节上的处理,于是认识了这几个函数:向下取整 floor()向上取整ceil()四舍五入取整round() 然后细讲一下题目中的各种问题,首先,“一元不等式”——题目中的定义为“x的系数可以为0”,此时直接判断"b > c"的正确性即可。 其次,很容易想到,a出了分0和非0还要分正负,接下去就是分类讨论了。a ...

2020-03-31 16:50:58 1891 6

原创 c++四舍五入函数,向上取整,向下取整函数

对含有小数点的数进行四舍五入是比较普遍的一种需求。在C++中也有类似的取整函数。在C++的头文件中有floor()和ceil()函数。在STL中还有round()函数。向下取整 floor()向上取整ceil()四舍五入取整round()...

2020-03-31 16:28:25 890

原创 旗鼓相当的对手【长链剖分】

题目链接 使用长链剖分O(N)代替dsu on tree的O(N log(N))来解决该问题。 用到长链剖分的性质,所有长链的总和为N,所以,开出一个长度为N的数组来给长链们使用(节约空间,懒人vector也是可以)。 那么,这道题,我们要知道某个点向下X步所有的结点的个数以及向下X步所有的结点的权值和,我们利用这两条信息自然可以求解了。 所以,我开了*f[ ]指针和*g[...

2020-03-30 22:00:14 299

原创 长链剖分学习笔记【树链剖分之长链剖分】

很早的时候,就有了对轻重链剖分的概念,也略微知道一些长链剖分的知识,但一直没有机会用上,所以也不算真正学习了,这次在一场比赛之中遇到了类似的题,虽然用dsu on tree的方法O(N log(N))的解决了,但是想到如果N够大的时候,卡了这个log,那么我们就需要线性O(N)的时间来解决这个问题了。 类比轻重链剖分,长链剖分的精髓就在于将原来以子树size作为评定轻重的标准,变成了子结...

2020-03-30 16:58:55 504

原创 抓住czx【最短路】

题目链接 首先,做这样的处理,把每个点的时间分割为几个区间,说明在这个区间内的时候,人在这个点内,那么,我们就有这样的选择,如果在这个区间内,或者区间之前抵达,就说明是可以碰见的,如果在这个区间之后抵达,就说明是见不到的了,所以跑最短路,如果在最短路时间抵达这个点的时候,能找到答案的话,更新答案,并记录即可。#include <iostream>#include <...

2020-03-30 10:52:23 217

原创 [USACO12FEB]Nearby Cows G【换根DP】

题目链接给你一棵n个点的树,点带权,对于每个节点求出距离它不超过k的所有节点权值和mi​。 求一个点的点权值很容易,以它为根,然后直接向下dfs,所有深度小于等于K的都是可以作为答案的,所以,处理子树上深度小于等于K的点权之和是有必要的,我们开个dp[maxN][maxK]来记录,每个点,向下kk步能积累的所有的点权之和。 然后,再丢出一个问题,如果我们知道一个点的答案,...

2020-03-29 22:43:59 279

原创 BZOJ 4066: 简单题【替罪羊树重构K-D Tree】

题目链接 题的名称叫做“简单题”,实际上不简单——题记 没有任何的花里胡哨,卡了空间!!! 也就是说,只能用数据结构来维护咯,舍弃时间也不能浪费空间啊,多一丢丢都会MLE。 所以,就变成动态开点平衡二叉树操作吧,但是真的平衡嘛?KD Tree建树的话,跟输入有关,还真不平衡?怎么维护其平衡呢?那么就是替罪羊树不断的重构不平衡的二叉树吧,这里不能添加判断平衡的数组了,因为空...

2020-03-29 21:01:17 206

原创 丑数【思维题】

Description 丑数就是这个数的质因子只有2,3,5,7这四个,除此之外不再含有其它 别的质因子。 注意1也被认为是丑数.丑数的前20个为 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, ... ;Input 每行输入一个N,1 <= N <= 5842,N为0时输...

2020-03-29 20:32:10 484

原创 [TJOI2007]脱险【最大流】

题目链接 首先,每个时刻,每个点最多经过一个人,那么来说,我们需要对于每个时刻的每个点进行拆点,限制流量。 然后,因为图实际上只有10*10,因为最外围是包围圈,然后时间上其实是上限50,所以我们不妨对于时间来建点,表示时间为Tim时候的坐标为(x,y)的点,那么,根据每一秒移动一步,初始为0,我们向四个方向都是链接上下一秒时刻对应的点值。 接下去,就是最大流的部分了。#i...

2020-03-29 10:52:03 299

原创 旗鼓相当的对手【Dsu on Tree】

题目链接 有很多细节上的东西,还是需要写的细一点,不然很容易wa掉的。 首先,以每个点作为子树的根结点来算贡献很容易发现,所以这里用一个Dsu的方法,使得的复杂度下降至。 然后dsu的过程一定要注意,要先算答案,再放入子树的贡献,当然算答案的时候,我们是要找对应的深度的结点。于是我们就能算到x的深度为但是,我们必须保证才能算它的贡献,因为这个等式算出来的deep[x]...

2020-03-28 21:31:09 289

原创 [TJOI2018]数学计算

题目链接 如果把这个问题看作是区间问题,那么会简单的多了,一开始整个区间都是1,所有的值都是1,然后就像是分治的做法,我们将他们分开来,算每个小子集的乘积取模,然后修改的时候其实就是置1或者是置当前数值。#include <iostream>#include <cstdio>#include <cmath>#include <string...

2020-03-28 16:15:40 229

原创 Birdwatching 【Gym - 102501K】

题目链接 抗疫期间,在家读如此长的题目容易烦躁hh,于是我就帮大伙读了。 有N个点,M条边的无向图,我们给出图P是图G的一个衍生图,图G中的点和边图P中都有,但是图P中可能存在一些多余边,怎么说呢,就是图G中有a->b->c这样的边,那么图P中可能就会新的生成a->c这样的边了,类推有效。 现在,我们要找一个点T,要确定这样的点T',使得T'确保在图G中有T‘-...

2020-03-28 15:48:36 1005

原创 [NOI2010]超级钢琴【RMQ+贪心+堆】

题目链接 超级棒的一道题,解这道题,需要分一下几步来看。取的是连续段 我们可以对每个可能起点去知道它的最大可能解(起点begin,最大可行解一定是begin + L - 1 ~ begin + R - 1中的一个) 如果每次都是取最大的话,那么下一个同起点的一定是不大于它的,贪心思想既然提出了问题,我们逐步解决:对于提出的问题一,可以使用前缀和来减少每次查询带来的不方便;对...

2020-03-27 23:23:00 200

原创 D-isaster【Kruskal重构树+dfs序】

题目链接 [Contest #11]D-isaster你需要支持对一张n个点m条边点带权的无向连通图进行以下两种操作: 修改点x的点权。 询问从点x出发只经过编号不大于y的点能到达的所有点的点权之积取模998244353。 于是乎,这题明摆了,编号不大于y的话,然后对于整个子树进行全体乘积,岂不就是Kruskal重构树然后再来一个dfs序维...

2020-03-27 10:45:43 147

原创 [POI2013]MOR-Tales of seafaring【最短路+坑点】

题目链接 P3556 很不纯洁的一道最短路。给n个点m条边无向图,每次询问两个点之间是否有长度为d的路径(不一定是简单路径)。 表面波澜不惊实则暗潮涌动。首先,给出的边保证u、v不相等。但是并不保证查询时候的u、v不能是u和u,也就是查询的点可能是相等的。那么,如果查询时候的点是相等的,同时又有这是一个独立的点,那么此时,它永远是0,不可能有所增长,这里需要特别注意。(85分是...

2020-03-26 23:02:21 232

原创 [POI2008]CLO-Toll

题目链接 本题有个小点需要注意,如果说它是多个相互不连通的图,也有可能形成一个可行解,多个环嘛。 然后剩下的,就是dfs去跑,如果跑出了返祖边,那么这个返祖边抵达的点,将改变原来的方向,剩下的就都是正方向,dfs直接跑就是了。#include <iostream>#include <cstdio>#include <cmath>#incl...

2020-03-26 20:14:34 161

原创 SJY摆棋子【替罪羊树重构K-D Tree】

题目链接 BZOJ 2648 前N个点还是比较好处理的,直接利用二叉树的建树来进行处理,关键就是后面的不断插入的M个点,这时候该如何操作来降低复杂度? 这里,我们引入替罪羊树的思想来使得二叉树趋于平衡,那么平衡因子应该如何确定呢?这道题存在一定的卡常,因为总的点数将近1e6了,这样以来,复杂度都不能带大常数了。 所以,我们估一下值,大概在处理了3e5次操作之后就直接进行重构树,保...

2020-03-26 17:39:21 276

原创 替罪羊树——平衡二叉树

替罪羊树是一种优雅的暴力,它通过设立值来使得总体的时间复杂度趋向于。 替罪羊树是一棵平衡二叉树,但是众所周知,如果我们按照一棵二叉搜索树BST的道理来直接插入或者删除点的话,很容易使得它不够平衡,变得瘦瘦高高的,我们不喜欢这种瘦瘦高高,更喜欢平摊高度的矮矮胖胖。如何平摊高度,这是替罪羊树要处理的东西。暴力重建! 有多暴力?直接把这棵子树拉出来,利用的方法,直接全体重建,所以如果...

2020-03-26 10:48:41 297

原创 SJY摆棋子【K-D Tree+常数优化】

题目链接 首先,对于T==2的时候,查询是个很好解决的问题,关键就是在于插入怎么处理了。 我们像做一个可持久化数据结构一样,我们对KD-Tree也进行可持久化,然后问题就变成了每次插入一个点,但是这样以来就是会使得查询的时候,我们的估值函数应该如何处理呢? 估值函数的处理,就是对于每个区间段,处理出来它的区间的最值范围,最小值和最大值,然后呢,对于最近可能的曼哈顿距离,如此求解:...

2020-03-25 10:48:18 215

原创 The Closest M Points【K-D Tree+堆】

题目链接 HDU - 4347 给出N个点的K维图,然后有T次询问,每次询问一个点(x,y),问它的前M临近的点按顺序分别是哪几个,保证答案的唯一性。 于是,根据这里的M很小,所以想到的就是拿一个堆来维护,值大的在前,我们尽可能使得堆的最大值最小,同时就是保证了堆内所有的元素的最小性质,所以一开始的时候push进去M个INF。 剩下的,就是KD Tree的查询了,每次输入一个点,...

2020-03-24 10:20:23 166

原创 [Sdoi2010]Hide and Seek【K-D Tree】

题目链接 BZOJ 1941 题意:给N个点,选其中一个点为起点,使得它到其他所有点的最远曼哈顿距离和最近曼哈顿距离的差值最小。 所以,题目就变成了对每个点进行查询,去查询它们对应的二维空间的最远到达的点和最近到达的点,最近到达的就是直接用临近算法来解决。 最远到达的话,我们于最近到达的“球面半径”一样,进行估值函数来传递信息,我们估值最远的可能点来进行优化。#includ...

2020-03-23 22:13:55 196

原创 [Cqoi2016]K远点对【BZOJ 4520】【KD Tree+堆】

题目链接 BZOJ 4520 已知平面内 N 个点的坐标,求欧氏距离下的第 K 远点对。 这里K比较的小,最大时只有100,所以想法就是维护一个堆,使得堆首是整个堆的最小元素,所以,这里就用优先队列来维护这层关系吧。 因为点到点,每个可以取的点对会被重复取一次,所以我们为了避险,直接取第2K远的点对。 剩下的就是KD Tree的操作了,但是有个难点,维护每个点最远可以选的点...

2020-03-23 20:13:26 165

原创 K-D Tree(K维空间数据结构)

K-D Tree是K临近算法中的一种k-d 是 k-dimensional 的缩写,也就是k维树,换句话说就是说这个树是维护一个k维元素的树,这个树上的节点有k个分量。一个k维的二叉搜索树就是k-d tree了。 先了解一下K-D Tree的概念例子(网图)K == 3的K-D Tree模型首先来看下树的组织原则。将每一个元组按0排序(第一项序号为0,第二项序号为...

2020-03-23 11:30:15 2196

原创 Kefa and Park【树形DP】

题目链接 CodeForces - 580C 题意:一棵以1为根的树,树上有些点是红的。一个叶子是合法的当且仅当从根到它的路径上出现的连续红点个数不超过m。求有多少个叶子是合法的。 思路:直接推个树形DP即可,dp[u]表示以u这点为终点的最大连续,dis[u]用以维护从根结点到目前u点的链上的最大连续。#include <iostream>#include &lt...

2020-03-22 20:18:22 238

原创 [APIO2018] 铁人两项【圆方树+树形DP】

题目链接 BZOJ 5463 首先,这道题的关键就是在于走环与直接走之间的差别。 很容易发现的是,我们可以通过枚举中间点来进行考虑,如果把这道题放到树上去,也就是原图是一棵树的话,那么很容易就能列写出对应的树形DP,通过维护子结点的size,我们构造起点和终点的可能性。如此,能解决所有的圆点上的问题。 现在的问题,就在于原图中存在环的情况,有环可怎么办呢?譬如说,我们现在取到的中...

2020-03-22 14:06:27 280

原创 战略游戏【HYSBZ - 5329】【广义圆方树+虚树】

题目链接 只要在摧毁这个城市之后能够找到某两个小C占领的城市u和v,使得从u出发沿着道路无论如何都不能走到v,那么小Q就能赢下这一局游戏。 所以,我们只需要知道有多少个点是可以作为割点的,那么求割点,并且总的点集还很少,所以就用广义圆方树加上虚树来完成了。 广义圆方树主要就是求点双连通分量,其中,所有的圆点就是可以作为割点的,所以,统计生成虚树上有多少个可以作为割点的点,然后...

2020-03-21 20:36:40 211

原创 Knights of the Round Table【点双连通分量与二分图】

题目链接 POJ - 2942 题意:亚瑟王要给骑士们开会啦,有N个骑士,其中有M对骑士相互之间会吵架,亚瑟王不允许相互吵架的骑士坐在一起,但是他们可以一同坐在餐桌上,只要隔开就可以了。还有就是,出席会议的骑士数必须是奇数,这是为了让投票表决议题时都能有结果。如果出现有某些骑士无法出席所有会议(例如这个骑士憎恨所有的其他骑士),则亚瑟王为了世界和平会强制把他剔除出骑士团。问亚瑟王至少要剔除...

2020-03-20 22:12:29 296

原创 Financial Crisis【点双连通分量】

题目链接 HDU - 3749 你以为学了Tarjan会写几个边双就真的理解什么是双连通分量了吗?——我原来真的不懂什么叫做点双BCC。 不过这都没有关系,解决了这个问题之后,我终于知道了什么叫做点双连通分量了。 这是一个绝对绝对经典的问题,首先讲一下题意: 给你一幅N个点,M条边的图(不一定连通),再给出Q个询问,每次的询问是u、v两点,从u到v是否有两条及以上“无重叠路...

2020-03-20 09:56:32 200

原创 无归岛【仙人掌图 最大权独立集】

题目链接 BZOJ 1487 在解决这个问题之前,我们可以先了解一下这个问题:仙人掌图的最大独立集。稍有些许差别,不带权值。 好了,回到这个问题上来,那么此题的题意讲的那么繁杂,到底讲的是个什么玩意儿呢? 有N个点,M条边的无向图,每个点都有各自的权值,问最大权独立集。 好了,这样一来这个问题就简单了,圆方树上跑树形DP即可,将原来的“1”变成现在的权值,就是用最大独立集的...

2020-03-19 11:08:25 365

原创 最短路【仙人掌圆方树+LCA】

题目链接 BZOJ 2125 将原图首先变成一棵树,这里就是对仙人掌进行圆方树处理,于是接下去就是对新图进行处理了。 比较简单的,就是我们搜到的LCA点是圆点,那么肯定此时的距离就是答案了,如果不是圆点呢?此时的LCA点是方点的话,那么最后的最短距离还不好说,因为存在可能走环的另一头更近的可能性,或者它二者的距离可以更近,这里的话,就是特别处理一下即可,是通过环上原距离,还是环的另外半...

2020-03-19 10:39:46 178

原创 小C的独立集【仙人掌圆方树+树形DP 最大独立集】

题目链接 BZOJ 4316 很显然,题目让求的是一个仙人掌图的最大独立集,那么就是用圆方树来弄到树上去做比较的方便。 于是,我们的第一步就是用圆方树来使得原图变成一棵树,于是原来的非环上的点,便变得很好求了,简单的dp[maxN][2]表示这个点选还是不选,选为1,不选为0,这是基础的树形DP的操作了。 接下去呢,就是关于环上的点该如何是好?那么,很容易想到,我们拆出一个点,这...

2020-03-19 09:40:10 359 1

原创 cactus仙人掌图【仙人掌圆方树+树形DP+单调队列】

题目链接 BZOJ 1023 首先,圆方树是比较好想到的,维护直径,我们最方便的做法就是先让它变成一棵树,这里因为是仙人掌图,所以就用圆方树来构建。 再者,就是维护直径了,比较好想到的是非环上结点,就是简单的树形dp就可以维护了。 如果这个点是环上的一个点那又如何是好?那么,环上的两点所构成的最长直径为dp[u] + dp[v] + dis(u, v),"dp[x]"表示x点到它...

2020-03-18 13:44:27 474

原创 XOR TREE【牛客练习赛58 F】【树链剖分】

题目链接这个问题很容易想到之间的关系,假设现在所要查询的这条链上有V1、V2、…… VK个点,那么第i个点的贡献在抑或中出现的次数XOR为当K为偶数时候,F(i)恒定为奇数 当K为奇数的时候,F(i)在i为偶数的时候F(i)为奇数 只有F(i)为奇数的时候,在抑或XOR中才有作用 于是,如果K为偶数的时候,我们直接求这条链上所有值的抑或XOR和即可,树链剖分就可以很好的维护了。...

2020-03-17 15:44:11 342

原创 Stars in Your Window 【POJ - 2482】【线段树扫描线】

题目链接 最开始的时候做成了贪心,离线求二维前缀和,然后树状数组维护二维偏序,这样的想法是存在BUG的,因为我是将每个点当成左下角、右下角、左上角、右上角来分别计算最大贡献的,但这样的做法却不是最贪心的,因为有可能该点并不作为矩形的四个顶角,而是作为内部点时候就是一个不够贪婪的贪心。譬如说是这种情况就不符合贪心策略好了,找到了问题所在就方便多了,而不是去持续的debug了。...

2020-03-16 15:55:02 190

原创 Contestants Division 【POJ - 3140】

题目链接 题意有坑点,理解完题意之后就真的比较的好写了。 一开始的时候,以为是一个种类并查集来任意两个相邻的点只能取一个,最后在一棵树上求权值之差…… 然后再反复的理解题意,终于明白了,主要还是看了讨论区,(大雾…… 有N个点的树,边M恒等于N-1,然后求割去一条边,使得最后剩余的两棵子树权值差最小。 这成了一个简单的搜索求子树权值问题了,比较的好解决。#inc...

2020-03-15 22:51:32 202

原创 [SCOI2005]骑士精神【迭代加深+IDA*】

题目链接 P2324 [SCOI2005]骑士精神首先,我们先讲讲几个基础知识:迭代加深 我们假设深度优先搜索(DFS)的最深搜索到Max_depth,那么也就是说深度到达Max_depth的时候不管满不满足答案都要返回了true or false。IDA*启发式搜索优化DFS 作为A*算法,也就是有估值函数这样的定义了,原来的深度小于等于Max_depth也将剪枝成为当前...

2020-03-15 19:18:21 246

原创 [USACO13DEC]Optimal Milking G【线段树维护最大独立集】

题目链接 P3097 [USACO13DEC]Optimal Milking G 很明显的是这道题有4e4个点,直接跑最大独立集的话,那么测评机承受不起啊!所以,这里要维护一个区间dp的形式。 每个区间有左右两个端点,我们现在要合并两个区间的话,会有一些情况:【0,0】:左右端点都不选; 【0,1】:左端点不选,右端点选; 【1,0】:左端点选,右端点不选; 【1,1】:左端...

2020-03-15 10:47:08 222

原创 [USACO09JAN]Total Flow S【最大流模板题】

题目链接 P2936 [USACO09JAN]Total Flow S约翰总希望他的奶牛有足够的水喝,因此他找来了农场的水管地图,想算算牛棚得到的水的 总流量.农场里一共有N根水管.约翰发现水管网络混乱不堪,他试图对其进行简 化.他简化的方式是这样的:两根水管串联,则可以用较小流量的那根水管代替总流量.两根水管并联,则可以用流量为两根水管流量和的一根水管代替它们当然,如果存在一根水...

2020-03-14 21:17:27 198

原创 [USACO06FEB]Steady Cow Assignment G【二分+最大流】

题目链接 P2857 [USACO06FEB]Steady Cow Assignment G有N头牛,B个牛棚.告诉你每头牛心里牛棚的座次,即哪个牛棚他最喜欢,哪个第2喜欢, 哪个第3喜欢,等等.但牛棚容量一定,所以每头牛分配到的牛棚在该牛心中的座次有高有低.现 在求一种最公平的方法分配牛到牛棚,使所有牛中,所居牛棚的座次最高与最低的跨度最小.数据范围:(1 <= N <=...

2020-03-14 20:56:13 191

74LS90的功能表.doc

74LS90的简介。功能以及其引脚的作用。包括其作用,对应的功能表,74LS90为中规模TTL集成计数器,可实现二分频、五分频和十分频等功能,它由一个二进制计数器和一个五进制计数器构成。

2019-05-10

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

TA关注的人

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