自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

(╯°口°)╯(┴—┴

┬—┬ ノ( ' - 'ノ)

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

原创 BZOJ 3282 Tree Link-Cut-Tree 动态树

题目大意:维护一种动态树形数据结构,支持:1.求树上两点之间的点的异或和。2.连接两点(不保证不连通)3.删除连点之间的边(不保证两点联通)4.将一个点的点权改成一个值思路:还是LCT,思路也比较裸。主要是它各种不保证,所以要多加判断。CODE:#include #include #include #include #define MAX

2014-09-28 19:52:32 1012

原创 BZOJ 2049 Sdoi2008 Cave 洞穴勘测 动态树 Link-Cut-Tree

题目大意:有一些洞穴,现在都是彼此分开的,将会被一些无向边所连接。给一些操作,加边,删边,求在某状态下两点之间的联通状态。思路:简单的Link-Cut-Tree维护图的联通性。基础题,建议初学者刷这个。(我才不会说我被坑第一道题刷的2631。。自己调了2天,然后让同学看2分钟就看出错误了。。。。。。要搞好基础啊!!!)判断两点是否联通的时候只要暴力找根比较看看一不一样就可以了,不会

2014-09-28 18:38:24 895

原创 BZOJ 2631 tree 动态树(Link-Cut-Tree)

题目大意:维护一种树形数据结构,支持以下操作:1.树上两点之间的点权值+k。2.删除一条边,增加一条边,保证加边之后还是一棵树。3.树上两点之间点权值*k。4.询问树上两点时间点的权值和。思路:利用动态树维护这棵树,lct的裸题。如果不会下传标记的,先去做BZOJ1798,也是这样的标记,只不过在线段树上做,比这个要简单许多。这个也是我的LCT的第一题,理解起来十分

2014-09-28 13:32:34 1437

原创 BZOJ 2819 Nim 树链剖分

题目大意:两个小人在树上玩Nim游戏,问有没有必胜策略。思路:尼姆游戏:如果所有石子的异或值为0就是必败局面。异或有如下性质:x ^ y ^ z = x ^ (y ^ z),所以就可以进行树链剖分了。题目中还好心提醒有30%的点会使dfs爆栈。。第一次写不用dfs的树链剖分,扒的别人的代码,有些丑陋。CODE:#include #include #inclu

2014-09-28 08:39:18 1292

原创 BZOJ 1798 Ahoi 2009 维护序列seq

题目大意:维护一个序列,能够区间加,区间乘,然后去

2014-09-26 09:34:51 1367

原创 POJ 1106 Transmitters 计算几何

题目大意:给出平面内一些点,给一个圆心坐标和圆的半径,求在这个圆心的半圆最多能覆盖多少个点。思路:暴力枚举就可以,数据量不是很大。先算出那些点有可能成为被覆盖的点,然后枚举所有的点与圆心连线成为圆的半径,用叉积验证是否在圆内即可。CODE:#include #include #include #include #include #define MAX

2014-09-25 19:21:37 840

原创 BZOJ 1588 HNOI2002 营业额统计 Treap

题目大意:统计营业额。每天的统计的数字是今天的营业额和以前所有的营业额的最小差值。思路:任何平衡树都可以。CODE:#include #include #include #include #define INF 10000000using namespace std;struct Complex{ int random,val,cnt,size;

2014-09-25 17:37:38 893

原创 BZOJ 1493 NOI 2007 项链工厂 Splay

题目大意:有一个很长的带颜色的项链,要求你快速的维护一种数据结构,他可以:1.把序列的后k个放在前面。2.将区间2~cnt的珠子翻转。3.将位置i和位置j的珠子互换。4.将区间i到j染色成k5.输出整个序列的颜色块的个数6.输出从i到j的颜色块的个数。思路:Splay。有些不好处理的是要时刻想着这是一个环,所以所有的计算颜色块的个数的时候要考虑收尾的颜色是否相同

2014-09-25 15:47:04 1164

原创 POJ 1696 Space Ant 计算几何 叉积的应用

题目大意:平面内有一些点,我们要通过一些方式来走遍这所有的点,要求一个点只能走一次,只能向左转而不能向右转。求遍历这些点的顺序。思路:数据范围是可以怎么搞都0ms的(n只能左转,想想好像有点像凸包啊。但是这个题要遍历所有的点,所以就把已经走过的点删掉,然后像凸包一样的往前走,每次找一个没走过的极角最小的点走,然后把它标记上。最后都走完就全部遍历完了。CODE:

2014-09-25 07:53:16 963

原创 POJ 1719 Shooting Contest 二分图最大匹配

题目大意:给出一张表格,m行n列,每一列有两个白色的格子。现在要选出n个格子,使得每列恰好有一个格子,每行至少有一个格子。输出每一列选的格子在第几行。无解输出“NO”。(有SpecialJugde)思路:二维的图,选点,很经典的二分图的模型。建完模之后,做最大匹配。这样首先要保证每一行要能被匹配到,如果max_match小于行数就输出NO。满足了每一行都有一个格子之后,要考虑每一列。现

2014-09-24 09:59:57 1128

原创 BZOJ 3196 二逼平衡树 树套树(线段树套Treap)

题目大意:写一种数据结构,他可以:1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查询k在区间内的前驱(前驱定义为小于x,且最大的数)5.查询k在区间内的后继(后继定义为大于x,且最小的数)

2014-09-23 16:51:02 1102

原创 BZOJ 2243 SDOI2011 染色 树链剖分

题目大意:给出一棵树,和它上面每个点的初始颜色。有两种操作,1:求从x到y一共有多少段颜色(连续相同的颜色算一个颜色段)。2:把x到y路径上都染色成z。思路:是一棵树,求LCA路径,迅速想到树链剖分。难点是维护区间合并问题。线段树上的区间合并很常规,正常做就可以,注意一下在从一个重链上跳到另一个重链的时候的区间合并。有两种解决方案。1:在线段树中询问的时候返回一个结构体,里面存着左边颜

2014-09-20 12:31:04 1327

原创 POJ 2763 Housewife Wind 树链剖分

题目大意:给出一棵无根树。开始的时候你在1号节点。有两种操作:1.求你的位置到x的位置的距离,然后你走到x点。2.把第x条边边权改成y。思路:裸地树链剖分。当然正解不是树链剖分,是DFS序+树状数组。没时间想太多就写了个链剖。CODE:#include #include #include #include #define MAX 200010#defi

2014-09-20 09:56:43 848

原创 网络流24题 之十七 运输问题

题目大意:有一些仓库,一些零售店。现在零售店从仓库进货。给出每个仓库有多少货物,每个零售店需要多少货物,还有单位货物从仓库运送到零售店的价格。求满足所有零售店需求的最小费用和最大费用。思路:最小费用最大流,最大费用最大流。避免重复,为了好写,我把解费用装到了一个结构体里。建图方法:源向所有仓库连边,费用0,流量为仓库里的东西多少。所有零售店向汇连边,费用0,流量为零售店需要的货

2014-09-18 20:00:49 1250

原创 BZOJ 1208 HNOI2004 宠物收养所 平衡树/set

题目大意:有一家宠物收养所,有没有被收养的宠物或者是想收养宠物的人,每个宠物有一个个性值,每个想收养宠物的人有一个理想的个性值。每一个时刻,宠物收养所里只能有想收养宠物的人或宠物。当人领走宠物时,就会有一个不满意度。求这个最小的不满意度。思路:就是个模拟+数据结构维护。用set可以水过,时间卡的不是很紧。练手写了Treap。注意极大值不能开太大,会reCODE:#i

2014-09-18 13:45:31 1431

原创 BZOJ 3680 吊打XXX 计算几何 模拟退火 广义费马点

题目大意:有个人(gty)被吊打,他机智的使用了分身,但是每个分身有他的重力,把这些gty的分身绑起来,经过一个公共的绳结,求这个绳结最后在哪里。思路:其实这个题就转化成了:定义一个点到一个分身的距离是两点间的距离 * 分身的重力。求平面内到这些点的距离的和的最小值。和poj2420差不多,这个题只需要在统计的时候吧权值乘上每个分身的重量就可以了。值得一提的是这个题要求精度到1e-3,写的

2014-09-17 20:46:07 1547

原创 POJ 2420 A Star not a Tree? 费马点 计算几何 模拟退火

题目大意:给出平面中一些点,求平面中的一个点,使得这个点到其他所有点的距离之和最短,并输出这个距离和。思路:模拟退火。精度到整数。。。没什么需要注意的。。话说费马点只能用模拟退火求近似解吧CODE:#include #include #include #include #include #define MAX 510#define INF 0x7

2014-09-17 20:41:56 1485

原创 BZOJ 1565 NOI 2009 Day2 T1 植物大战僵尸

题目大意:小明同学在玩植物大战僵尸游戏,现在轮到他控制僵尸打败植物。植物分布在一个m*n的矩形中。僵尸从右边向左边攻击,要想打到左边的植物,要先打到它右边的植物。有一些植物是可以保护其他植物的,僵尸不能进入植物保护的区域,否则就会死。打败植有可能失去资源,也有可能获得资源。求一种攻击植物的方法,使得僵尸获得的资源最多。思路:先不考虑其他特殊的情况,一看到正权负权求最大就是最大权闭合图。但是有一

2014-09-17 17:45:16 1218

原创 poj 1379 Run Away 计算几何 模拟退火

题目大意:给出平面内的yi

2014-09-17 11:21:06 1342

原创 POJ 3164 Command Network 最小树形图模板 朱-刘算法

模板题,没啥好说的。。最小树形图的解法见:http://www.cnblogs.com/vongang/archive/2012/07/18/2596851.htmlCODE:#include #include #include #include #include #define MAX 50010#define INF (min_dis[0])u

2014-09-16 18:54:32 1238

原创 POJ 3580 SuperMemo Splay 区间维护

题目大意:维护一种数据结构,它支持以下功能:1.从

2014-09-15 20:49:34 1005

原创 BZOJ 1502 NOI 2005 月下柠檬树 计算几何 自适应辛普森积分

题目大意:有一个由圆锥和圆台组成的柠檬树,在月亮发出的平行光下,可以形成一个影子,求这个影子的面积。思路:理解投影的性质:只要是平行光线,投影在水平面上,所得的图形都与原图形全等。知道了这一点我们就可以画画图,分析就知道,其实柠檬树的影子,就是一些园和等腰梯形的面积的并。(如下图,样例)运用计算几何的知识就可以得到圆的方程和圆的公切线的方程,然后得到一个连续的函数。最后这个题就成为一直

2014-09-15 12:32:53 2216

原创 BZOJ 1269 [AHOI2006]文本编辑器editor Splay伸展树

题目大意:类似于我们正常输入文本,现在模拟这样的一个功能。它支持:1.将光标移动到第k个字符前2.在光标后面加入长度为l的字符串3.删除光标后面l个字符4.将光标后面l个字符翻转5.输出光标后面的字符,并保持光标位置不变6.将光标向前移动一个位置7.将光标向后移动一个位置注意:如下图所示,两次RE,得来的教训是插入的字符串长度要开到10000010-_-#

2014-09-13 20:00:05 1247

原创 BZOJ 1001 Beijing 2006 狼抓兔子 最小割

题目大意:有一张无向图,描述的是兔子窝的位置和之间的边。现在狼来抓兔子了,兔子慌忙的从(1,1)逃走到(m,n)。每条边上都有能通过最多的兔子数量。狼不想让兔子逃走,每在一条边驻守一只狼就可以避免一个兔子通过。问最少多少狼可以让所有兔子都不能逃走。思路:建图,按题目中的意思是去掉最小的边使得源到汇不连通,显然的最小割。CODE:#include #includ

2014-09-13 14:50:38 1362

原创 BZOJ 1012 JSOI 2008 最大数 maxnumber 线段树水题

题目大意:维护一种数据结构,支持两个功能:查询区间最大,插入到数列的最后。思路:一眼就看到是线段树了,没什么好说的。只有一点要注意,插入的时候线段树的范围不要跟着序列中的总数走,那样建完节点之后无法更新父亲节点的信息。CODE:#include #include #include #include #define MAX 200010#define MO d

2014-09-12 17:57:57 1168

原创 BZOJ 2662 BeiJing wc2012 冻结

题目大意:在一个充满魔法的国家,有一种魔法卡片,它可以使你行走的时间减半。给一张无向图,并告诉你有k个魔法卡片,问你最快多长时间能够从1到N。思路:经典的分层图模型,SPFA使将dis数组和vis数组开成二维,纪录一维层数信息即可CODE(1A,开心):#include #include #include #include #include #defi

2014-09-11 21:36:58 1195

原创 BZOJ 3627 JLOI 2014 路径规划 分层图 SPFA+HEAP

题目大意:N个点M条无向边,每个点有可能有红绿灯,或者是加油站,或者单单是一个点。红绿灯太多会让人烦,太久不加油车子就会开不动,问最多通过K次红绿灯,从“start”点到“end”点的最少花费是多少。思路:只能最多通过K次红绿灯,可以依据这个建分层图。f[ i ][ j ]为在已经通过i次红绿灯后,在j点时的最小花费。这只是总体的思路,具体是实现起来还是有其他一些小问题。题目中有一

2014-09-11 15:49:12 1515

原创 BZOJ 2763 JLOI 2011 飞行路线 分层图+最短路

题目大意:两个小屁孩要乘飞机去旅行。现在给一些无向边和边权,另外他们还有K次免费乘坐飞机的机会,问从起点到终点的最小话费是什么。思路:分层图第一题。之前听到分层图还以为是真的建K个图,然后不同层数之间的点连边跑最短路。。后来经同学讲解才发现我想多了。。其实还是动归的思想(最短路不也是动归的思想么(`・ω・´)),f[ i ][ j ]表示在j位置时,已经用了i次免费机会的时候的最小

2014-09-10 14:26:04 1637

原创 NOIP 2003 侦探原理 大模拟+枚举

题目大意:有一些小孩闲着没事玩游戏,他们M个人中有N个人肯定说假话,剩下的人肯定说实话,有一个人是罪犯,求这个罪犯。他们会说出如下的话:证词内容 证词含义I am guity我是罪犯I am not guity.我不是罪犯Xxx is guityXxx是罪犯(Xx

2014-09-10 09:31:03 1060

原创 Splay tree 区间翻转 模板

Splay作为二叉平衡树与其他二叉平衡树不同的是,Splay能够支持区间操作。最然可持续化Treap也可以做到,但是代码量实在是难以同日而语。放一个模板,只支持区间翻转。想看其他操作的可以看我的 维修数列 的博客:http://blog.csdn.net/jiangyuze831/article/details/39098481PS:还是1A的,有点小开心……CODE:

2014-09-06 20:19:50 1612

原创 BZOJ 1500 NOI 2005 维修数列 Splay

题意:见下图传说级别的NOI数据结构神题,像我这种弱渣花了一下午的时间才A掉,最后发现竟然是边界值的问题没处理好。。这个题对Splay的所有操作基本是全了。插入:新建一颗Splay Tree,然后把对应节点Splay到根的右儿子上,再把新建的树连上。删除:把要删除的区间Splay到根的右儿子的左儿子上,递归free掉。(这里可以用数组优化,可以避免递归free节

2014-09-06 07:52:07 1253

原创 POJ 2010 Moo University - Financial Aid 堆的高级应用 -- 维护最小(最大和)

题目大意:有N头牛,每头牛两个权值,A和B。从这N头牛中选取C头牛,使得:1、这些牛中A权值的中位数尽量大。2、这些牛的B权值的和小于题中所给的F输出这个最大的A权值的中位数;如果没有满足题意的解,就输出-1。值。思路:堆有一个神奇的功能。假设上图是一个数组,在B从A到C移动的过程中,利用大根堆可以维护出B在所有位置时,从A到B中选K个值

2014-09-04 16:24:24 785

原创 堆模板

堆是一种简单高效的数据结构,在很多常用算法的优化上daxi

2014-09-04 13:23:18 921

原创 BZOJ 1503 郁闷的出纳员 二叉平衡树(Treap,Splay)

timud第一行有两个非负整数n和min。n表示下面有多少条命令,min表示工资下界。接下来的n行,每行表示一条命令。命令可以是以下四种之一:名称格式作用I命令I_k新建一个工资档案,初始工资为k。如果某员工的初始工资低于工资下界,他将立刻离开公司。A命令A_k

2014-09-03 12:32:24 836

原创 BZOJ 3670 NOI 2014 动物园 变形KMP

题目大意:定义一种前缀,这个前缀和后缀一样并且没有交集,num[i]为qian

2014-09-02 17:37:10 2159

原创 BZOJ 3669 NOI 2014 魔法森林 最短路/LCT

题目大意:给一个无向图,每个边有两个权值,a和b

2014-09-02 16:00:41 1188

原创 BZOJ 3668 NOI 2014 Day1_T1 起床困难综合症 二进制拆分

题目大意:给一些操作(只能是&)

2014-09-02 14:32:53 985

原创 POJ 2488 A Knight's Journey 水搜索

题目大意:给一些棋盘的大小,

2014-09-01 19:35:51 656

原创 Splay tree 伸展树 (不含区间操作)模板

写了三天的Splay终于AC了,题是用的学校题库里的平衡树的题,由于刚接触Splay,就用那个不含区间操作的练手,结果挂了三天。。这一定会成为黑历史题目如下:2183: 普通平衡树Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 269  Solved: 119[Submit][Status][Web Board]

2014-09-01 17:43:15 1059

空空如也

空空如也

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

TA关注的人

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