Icefox的博客

生活不止眼前的苟且,还有诗和远方。

hdu4010 Query on The Trees(lct)

1.连边x,y 2.以x为根,删边y,fa[y] 3.路径加法 4.路径最大值。

2018-01-31 18:26:13

阅读数 132

评论数 0

bzoj3669 [Noi2014]魔法森林(并查集+lct)

把所有边按a值从小到大排序。不断往里加边,维护连通性,如果成环,查询目前x,y路径上的b的最大值,如果我当前边的b比最大值还大,则肯定不往里加。否则替换掉最大的b值那条边,连通性不变。如果1和n已经联通,就更新答案,用目前1,n路径上的b的最大值+当前边的a值来更新。这样为什么是正确的呢?考虑你这...

2018-01-31 18:13:47

阅读数 235

评论数 0

bzoj1180 [CROATIAN2009]OTOCI(lct)

因为没有删边操作,可以直接拿并查集维护连通性。为啥不能直接带权并查集呢?因为还有修改点权。 #include #include #include using namespace std; #define ll long long #define inf 0x3f3f3f3f #define...

2018-01-31 17:14:55

阅读数 154

评论数 0

bzoj2049 [Sdoi2008]Cave 洞穴勘测(lct)

只有link和cut的裸题。

2018-01-31 16:40:31

阅读数 141

评论数 0

bzoj3282&&luogu3690【模板】Link Cut Tree (动态树)

觉得这篇blog讲得不错:传送门 模板题。lct,动态树,树的形态可以变化的树链剖分,用splay来维护每条重链上的信息。 #include #include #include using namespace std; #define ll long long #define inf...

2018-01-31 16:12:00

阅读数 174

评论数 0

bzoj2329 [HNOI2011]括号修复(splay)

首先我们发现对于一个括号序列,可以先贪心地把能配对的都消掉,剩下的括号一定是)))(((这样的,我们记作(a,b),则不难发现,答案就是(a+1)/2+(b+1)/2.因此我们只需维护括号序列(a,b)。可以像捉迷藏那题一样的维护。但是我们发现翻转或反转后,括号序列完全不一样了x。怎么办呢。于是我...

2018-01-31 14:45:43

阅读数 123

评论数 0

bzoj3831 [Poi2014]Little Bird(单调队列优化dp)

f[i]表示跳到i的最小体力。则容易得到转移方程: f[i]=min{f[j]+(a[j]<=a[i])|i−k<=j<i}f[i]=min\{f[j]+(a[j]<=a[i]) |i-k<=j<i\} 由于有(a[j]<=a[i])的存在,看似不能单...

2018-01-30 22:40:59

阅读数 129

评论数 0

bzoj1014 [JSOI2008]火星人prefix(二分答案+哈希+平衡树)

我每次询问,用二分答案+hash去求lcp。 splay维护一下插入和修改。点p的hash值就是 hs[l]∗(sz[r]+1)+hs[p]∗sz[r]+hs[r]hs[l]*(sz[r]+1)+hs[p]*sz[r]+hs[r]

2018-01-30 18:19:04

阅读数 164

评论数 0

bzoj2073 [POI2004]PRZ(状压dp)

dp[s]表示S状态的人都干掉的最小时间,枚举子集来转移,复杂度O(n3)O(n^3)

2018-01-30 17:13:35

阅读数 151

评论数 0

bzoj1895 Pku3580 supermemo(splay)

就revolve操作比较特殊。这里对序列的revolve相当于循环移位,向右移。我们可以先算出循环移位之后新的第一个数原来的位置pos。 比如对于rotate(1,n,t),我们算出pos,然后翻转(1,pos-1)(pos,n)(1,n)即可。自己举举例子就看出来了。

2018-01-30 16:31:47

阅读数 123

评论数 0

bzoj1076 [SCOI2008]奖励关(期望dp+状压dp)

期望dp就要倒着做。。。 dp[i][S],表示前i-1轮过后,目前的宝物获得状态是S,在i~k轮能获得的最大期望。那么答案就是dp[1][0]。

2018-01-30 14:34:08

阅读数 182

评论数 0

bzoj4864 [BeiJing 2017 Wc]神秘物质(splay)

区间极值最大值一定是最大值-最小值,区间极值最小值一定是相邻两个数的差,因此我们还要维护区间最右和最左是几。

2018-01-30 14:05:46

阅读数 161

评论数 0

bzoj3434 [Wc2014]时空穿梭(莫比乌斯函数+多项式乘法)

蒟蒻我第一步共线就没想出来x暴力dp T飞。直接爆零qaq 我们记C个点分别为CiC_i,V为{v1,v2...vn}\{v_1,v_2...v_n\},令Bi=Ci−Ci−1B_i=C_i-C_{i-1}。则我们发现Bi=(ti−ti−1)VB_i=(t_i-t_{i-1})V,也就是说每一个...

2018-01-29 17:53:02

阅读数 283

评论数 0

bzoj4405 [wc2016]挑战NPC(一般图最大匹配)

我们把每一个筐子拆成三个,互相连边,得到一个三元环。x向y拆成的三个点连边。我们不难发现,每一个匹配都对应了一种分配方法。如果一个筐子至多放了1个球,则它的三元环中自己还有且仅有一对匹配。所以半空的筐子数=最大匹配-n 然后是个一般图,要用带花树来求最大匹配,模板见uoj79

2018-01-27 20:46:06

阅读数 121

评论数 0

uoj79 一般图最大匹配(带花树)

写着感觉好麻烦呀。。。心力交瘁。。。大概就是缩花,花套花想想就迷。。。推荐几个学习的好地方: http://www.csie.ntnu.edu.tw/~u91029/Matching.html 2015 年中国国家队候选队员论文集,陈胤伯,《浅谈图的匹配算法及其应用》

2018-01-27 18:07:08

阅读数 219

评论数 0

USACO2018JAN Gold

A.mootube(离线+并查集) 给定一棵n个点的树(n=1e5),有边权,两点间距离定义为两点路径上的边权最小值。m个询问(m=1e5),k,v,询问对于点v,距离>=k的点有多少个(不含v)离线+并查集,按k从大到小做,此时与v连通的所有点均为答案。 我已经菜到想不出这种题了qaq...

2018-01-27 00:26:22

阅读数 665

评论数 0

hdu4547 CD操作(lca+map)

就是求lca。。。要注意如果A=B的话是需要0步。字符串映射可以采用map。

2018-01-26 21:09:43

阅读数 162

评论数 0

bzoj1251 序列终结者(splay)

区间加,区间翻转,区间最大值。splay直接上。

2018-01-25 23:10:14

阅读数 126

评论数 0

bzoj1097 [POI2007]旅游景点atr(spfa+状压dp)

首先spfa预处理一下K个点以及起终点之间的最小距离。 然后比较显然的状压dp。f[S][i]表示走过了状态为S的点,现在在i的最短路。枚举一个j去转移,判断一下合法就好了。复杂度看上去是O(km+2kk2)O(km+2^kk^2)的。

2018-01-25 22:43:56

阅读数 115

评论数 0

bzoj3506 [Cqoi2014]排序机械臂(同bzoj1552)

bzoj3506 [Cqoi2014]排序机械臂(同bzoj1552)

2018-01-25 16:05:25

阅读数 159

评论数 0

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