自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不来也不去的一只失忆蝴蝶

曾迷途才怕追不上满街赶路人

  • 博客(15)
  • 收藏
  • 关注

原创 [51nod 1766]树上的最远点对

题目大意给定一棵树,m个询问每次询问从a~b选一个结点并从c~d选一个结点使这两个结点距离最大。结论根据树的直径性质我们得到一个结论: 一个集合中的直径两端点一定被分成两个非空集合后两条直径的四个端点包含。 于是线段树维护。 注意你求lca不能倍增,应该用RMQ求。 RMQ求LCA的方法:得到树的欧拉序与对应深度序,设fi[x]表示结点x最早出现在欧拉序中的位置。假若满足fi[x]<=z<=

2016-06-30 16:38:01 1350

原创 小W的数字

前言%%%dwx %%%dwx %%%dwx %%%dwx %%%dwx题目描述记忆化搜索如果设step(n)表示n减到0的最小操作次数,显然step有单调性。 我们设f[mx,n]表示把n减到0的最小操作次数,mx表示的是比n最高位还高的那些位的最大值。 现在我们可以固定最高位,把剩余位减到0,也就是递归计算,返回二元组(cost,dp)表示操作次数为cost,最终还可以额外减掉一个d

2016-06-30 16:24:11 869

原创 小H的卡片

题目描述状压dp显然我们只要能选出一些数,使它们能够组合成1即合法。 根据裴蜀定理,显然是最大公约数为1时合法。 容易想到状态压缩dp保存每个质因数是否出现,但质因数太多了,怎么办? 可以枚举一张卡片必须被我们选,那么就只剩下最多9个质因数了。 于是做n次状压dp即可。#include<cstdio>#include<algorithm>#include<cmath>#define f

2016-06-30 16:14:56 527

原创 Center

题目描述简单思路做一次floyd。 接着枚举一条边,其两个端点为u和v,长度为c。 设终点在这条边上,距离u的距离为x。 那么点i到终点的最短路为min(dis[i][u]+x,dis[i][v]+c-x) 我们把从u节点走到终点的这些节点集合称为A集合,其余称为B集合。 那么一个终点的贡献就是min(A集合中点到u的最短路最大值+x,B集合中点到v的最短路最大值+c-x) 我们可以计算

2016-06-29 21:26:28 566

原创 Rectangle

题目大意求一个面积最小的矩形使其能容纳给定的n个矩形,这n个矩形在该矩形内不能有交,且不能旋转或翻转。搜索我们知道——最终方案中,不会存在任何一个矩形可以向左或向上移动。 也就是它们都是贴着的。 于是我们可以定义关键横坐标,初始时只有1,每加入一个矩形,就将其右边界往右一格所在设为关键横坐标。我们规定矩形的左边界必须在关键横坐标上,于是可以知道符合这个规则最后矩形都是贴在一起的。 那么每次枚举

2016-06-29 21:13:49 566

原创 [肝学习资料]数据结构

前言看学习资料啦啦啦 以下基本是口胡题解和一些想法总结。花园n个节点的树,m个操作,修改一个点权或者询问一条路径上某个权值的出现次数。 n,m<=10^5,点权在int范围,强制在线。一开始想的炒鸡复杂。其实思路和数树数差不多。 对每个权值开线段树维护,然后转化为简单的求和问题,每个节点保存到根的和即可。由于权值在int范围内,不能直接开root数组,我们可以用map或hash。kinoman

2016-06-28 21:18:52 636

原创 [bzoj3572][HNOI2014]世界树

题目描述世界树是一棵无比巨大的树,它伸出的枝干构成了整个世界。在这里,生存着各种各样的种族和生灵,他们共同信奉着绝对公正公平的女神艾莉森,在他们的信条里,公平是使世界树能够生生不息、持续运转的根本基石。 世界树的形态可以用一个数学模型来描述:世界树中有n个种族,种族的编号分别从1到n,分别生活在编号为1到n的聚居地上,种族的编号与其聚居地的编号相同。有的聚居地之间有双向的道路相连,道路的长度为1。

2016-06-28 20:00:04 754

原创 nekopara

题目描述树链剖分把边和询问放在一起按照权值排序,权值相同询问优先。 假如树上每条边都用01表示是否超过当前limit。 扫到一条边,就是把对应边从0变成1。 扫到一个询问,就直接询问了。 树链剖分,线段树维护区间长度、答案、左边/右边的连续1个数。 然后就可做了。#include<cstdio>#include<algorithm>#include<cmath>#define fo(

2016-06-28 18:06:07 773

原创 reimu hakurei

题目名意义博丽灵梦 本弱表示从来自机都选的是博丽灵梦QAQ (当然像红魔乡附加关那种就只能选雾雨魔理沙了题目描述 构造首先很显然 f[i]=∑j|ib[j]∗d(ij)f[i]=\sum_{j|i}b[j]*d(\frac{i}{j}) d是除数个数函数。 先把d处理出来。 一个显然的结论:一定能构造出价值为满的 b都是正整数,改变i的选或不选状态只对后面产生影响。 从前往后做,如

2016-06-27 15:55:52 1864

原创 [bzoj2962]序列操作

题目大意你需要兹瓷对序列的三种操作: 1、区间加上一个数。2、区间取相反数。3、区间任意取k个数的积的和(k<=20)线段树我们需要维护两个标记,当线段树要维护多个标记时,如何处理标记之间的影响和如何下传标记成了问题。 这里推荐一下来自Fuxey的处理标记的有效原则 先看另一道题有趣的有趣的家庭菜园 在那道题中,线段树需要同时维护取max和加法标记。我们规定的执行顺序是先做取max再做加法。

2016-06-27 11:56:02 1586

原创 共价大爷游长沙

题目大意有一棵树,会改变它的形态。 有许多路径,路径集合会被更改。 询问操作是询问一条边是否被所有路径经过。题解给每条路径随机一个权值,并给这条路径的两个端点点权异或上这个权值。 用LCT维护形态信息以及子树点权异或和。 这个涉及虚边信息维护,具体可以看首都 检查一条边是否被所有路径经过,如果切掉这条边,以该边两个端点为根的两颗树子树异或和都等于所有路径异或和那么即被所有路径经过。 因为

2016-06-26 11:09:15 1173

原创 [bzoj2733][HNOI2012]永无乡

题目大意有n个点,初始时有一些边。 每次操作要么加一条边,要么询问一个点所在联通块数值第k大的点。水题联通情况并查集维护,每个连通块再对应一个权值线段树。 合并连通块就是线段树合并。#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;const int maxn

2016-06-26 10:23:14 1010

原创 [bzoj2658]小蓝的好友

题目大意求一个n*m网格里有多少矩阵包含至少一个黑格子。 数据保证随机Treap可以想到求有多少矩阵不包含任何黑格子。 直接跑单调栈会TLE。 我们可以针对某一行,每个格子求出其最长上升的距离,得到一个数组up。 然后,对up数组进行笛卡尔树建立。 那么,我们知道对于笛卡尔树中任意一个结点x,其对答案贡献为(h[x]−h[fa[x]])∗size[x]∗(size[x]+1)/2(h[x]

2016-06-25 16:47:21 881 2

原创 thusc2016旅游记

DAY -2早上干脆旷了早读,去机房给手机续了一下命,顺便下载了点音乐进去。 坐车,在机场里和dp爷一起买了瓶水(好贵呀 第一次坐有这么高端娱乐功能的飞机,旁边坐的是dp。前面有可以干各种事的触摸屏(但触摸不太灵,要么多按几次,要么请dp的金手指) 看到有GDOI的疯狂动物城就点开看了,dp爷没有耳机提出要和我一起看,凑到我屏幕看太麻烦于是试了好久的画面同步(最后还是有所偏差)。过了一会

2016-06-08 18:41:27 2191

原创 [bzoj1455]罗马游戏

题目大意需要兹瓷集合合并与删去集合内最小值。可并堆还能说什么呢,裸的……#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;const int maxn=1000000+10;int fa[maxn],dis[maxn],left[maxn],right[maxn

2016-06-01 20:24:46 756

空空如也

空空如也

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

TA关注的人

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