上一页 1 2 3 4 5 6 7 8 9 10 ··· 30 下一页
摘要: Water Tree给出一棵树,有三种操作:1 x:把以x为子树的节点全部置为12 x:把x以及他的所有祖先全部置为03 x:询问节点x的值分析: 昨晚看完题,马上想到直接树链剖分,在记录时间戳时需要记录一下出去时的时间戳,然后就是很裸很裸的树链剖分了。 稳稳的黄名节奏,因为一点私事所以没做导致延迟了 (ps:后来想了一下,不用树链剖分直接dfs序维护也行。。。)#include #include #include #include #include #include #include #include #include #include #include #include usin... 阅读全文
posted @ 2013-09-15 08:58 yejinru 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 题目:给出平面上n个点,现在找m个点,并且使得这m个点最近的两个最远。分析:显然这满足二分的性质,二分答案,根据点距离需要大于等于二分值重新构造新图,则问题变成了:在新图中找出满足所有点对之间的距离大于等于二分的值的一个子图。因此在新图中寻找最大团即可。具体看代码#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;typedef unsigned lo 阅读全文
posted @ 2013-09-14 11:20 yejinru 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 说明摘自:pushing my way的博文最大团通过该博主的代码,总算理解了最大团问题,但是他实现时的代码效率却不算太高。因此在最后献上我的模板。加了IO优化目前的排名是:6yejinru328MS288K2822BC++2013-09-14 10:53:35问题描述:团就是最大完全子图。给定无向图G=(V,E)。如果UV,且对任意u,vU 有(u,v)E,则称U 是G 的完全子图。G 的完全子图U是G的团当且仅当U不包含在G 的更大的完全子图中,即U就是最大完全子图。G 的最大团是指G中所含顶点数最多的团。例如: (a) (b) (c) (d)图a是一个无向图,图b、c、d都是图a的团,且 阅读全文
posted @ 2013-09-14 11:00 yejinru 阅读(848) 评论(0) 推荐(0) 编辑
摘要: 4612Warm hdu up题目:给出一个图,添加一条边之后,问能够在新图中得到的最少的桥的数量。分析:我们可以双联通分量进行缩点,原图变成了一棵树。问题变成了:求树中添加一条边之后,使得不在圈的边最少。显然求一边直径,用总边数减掉最长路上的边数就是答案。注意数据存在重边的情况。#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;typedef un 阅读全文
posted @ 2013-09-13 19:27 yejinru 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 题目:给出一棵树,每棵树的节点有权值,现在有m组询问,在线询问以节点x为根,高度为y的所有子节点的最大权值。这题是我今早在做HDU 4601时,由于思路错了,稍微改动了一下题目,得到这个简单版,不知道有没有出现过原题。分析: 由于必须在线,离线的做法不可取。 询问的是以节点x为根的子树的节点信息,因此考虑一下dfs序。在dfs时,我们用数组d[i]记录第i层的节点。那么,在一棵子树下相同高度的节点必然连续出现在数组d[i]中。对于n个节点按d[i]重新编号,并且把值也在新编号的位子上,记录相应的hash值(hash[新编号] = 旧编号)。 构造线段树,维护一下新的编号。 这时,以节点... 阅读全文
posted @ 2013-09-13 13:52 yejinru 阅读(192) 评论(2) 推荐(0) 编辑
摘要: HDU 4716A Computer Graphics Problem水题。略HDU 4717The Moving Points题目:给出n个点的起始位置以及速度矢量,问任意一个时刻使得最远的两点的距离最小。分析:显然只有两点的话,答案满足三分性质。对于多个点,画个图分析一下,其实也满足三分性质。因此,先构造n*(n-1)/2个二次函数,于是三分枚举时间即可。#include #include #include #include #include #include #include #include #include using namespace std;#define pb push_ba 阅读全文
posted @ 2013-09-12 14:46 yejinru 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 昨天热身赛的简单版:LCIS。昨天那题用树链剖分,不知道哪里写错了,所以水了水这题看看合并、更新方式是否正确,发现没错啊。看来应该是在树链剖分求lca时写错了。。。题目:给出n个数,有两种操作: 1.单点修改 2.区间询问:最长连续上升子序列分析:只需要维护五个域就行:lix,rdx,mix,lval,rval。记录当前区间 最左的值lval , 最右的值rval,必须从左起连续上升序列的长度lix,必须右起下降的长度rdx。合并时注意下即可。#include #include #include #include using namespace std;char IN;bool NEG;i.. 阅读全文
posted @ 2013-09-12 09:33 yejinru 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 今天,我们队算是选好了区域赛的地方。 由于区域赛临近,自己还是很多不会,并且最近状态不算太好,所以制订一下最近的计划: 11-20:主攻图论,主要涉及:网络流建模(最小割Amber那篇论文,有上下界的网络流,全局最小割),二分匹配,差分约束,2-sat,KM,分层图,涉及tarjan算法(桥,割点,强连通),最小树形图(done),会套模板(最小度限生成树,一般图匹配带花树算法),弦图,最大团。 21-25:主攻字符串,KMP,字符串hash,进一步理解AC自动机(普通,fail树+树状数组维护,ac自动机上的dp),SA算法(现在只会套一些基本的模板题),有时间看看后缀自动机。 ... 阅读全文
posted @ 2013-09-11 00:10 yejinru 阅读(202) 评论(0) 推荐(0) 编辑
摘要: hdu 2121题目:给出m条有向路,根不确定,求一棵最小的有向生成树。分析:增加一个虚拟节点,连向n个节点,费用为inf(至少比sigma(cost_edge)大)。以该虚拟节点为根求一遍最小树形图算法,这时肯定存在解,如果费用>=inf时,说明无解。这是因为sigma(cost_edge)<inf。如何求得根?在寻找前驱时发现为根,则更新一下那条边的边号即可。hdu 4009题目:n个地方需要供水,可以自己挖水井供给自己,或者可以从别的地方供水,给出各自的方案,问对n个城市供水的最小费用。分析:由于可以自己供应给自己,题目显然有解。跟上题相似,添加一个虚拟节点,对n个城市连边, 阅读全文
posted @ 2013-09-10 10:50 yejinru 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 最小树形图求的是有向图的最小生成树,跟无向图求最小生成树有很大的区别。步骤大致如下:1.求除了根节点以外每个节点的最小入边,记录前驱2.判断除了根节点,是否每个节点都有入边,如果存在没有入边的点,说明树形图不存在,退出。3.沿着节点的前驱找,如果发现环,把环缩点。4.如果不存在环,结束。否则,跳到1.其实我是来贴模板的。。。比较好的讲解:最小树型图的求解与实现代码讲解比较好的:hdu4009 Transfer water ( 最小树形图的模板 )用IO优化时死活TLE,改了scanf就过了,后来用!=EOF发现数据不全,怪不得TLE了,囧#include #include #include # 阅读全文
posted @ 2013-09-09 23:15 yejinru 阅读(241) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 30 下一页