自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ProLights的博客

Someday, you can program the lights.

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

原创 第42届ACM国际大学生程序设计竞赛 亚洲区域赛 西安站 总结

今年暑假集训结束的时候我们队在UESTC-ACM Div.1里排名第6,所以获得一场ICPC和一场CCPC的现场赛资格。 由于上半年5月打过西安的邀请赛并取得了一块银牌,笔者那次毕竟是第一次打区域赛级别的现场赛并且拿到银牌还是很欣慰的, 所以对西安站挺有好感的,于是打区域赛的时候还是选择了西安站。 ------启程 2017-10-27 本来是16:10的火车,但是稍微在路上耽搁了

2017-10-31 19:57:05 5232 2

原创 HDU - 6191 Query on A Tree 可持久化字典树+dfs序

题意:给出一颗树,每个节点有一个权值,q个询问,询问以点u为根的子树中的节点权值异或x所得的值的最大值。 可持久化字典树+dfs序 对子树进行询问很容易想到dfs序,然后变成了线性的询问区间[l,r]内异或x所得的最大值,这个是可以用可持久化字典树来做,类似于主席树,每颗字典树维护的是区间[1,i]的信息,询问的时候,如果sum[r]-sum[l-1]大于0则说明在这个区间内这个值是存在的,然后按照通常的0-1树的做法,每次尽可能访问x&(1<<i)的异或值即可是答案尽可能大。 空间复杂度 O(nlogn)

2017-10-26 12:43:07 1006

原创 SPOJ - COT Count on a tree 树上主席树+LCA+任意路径问题

题意:给出一个树和树上每个点的权值,给出m个询问(u,v,k),询问在树上从点u到点v所构成的路径上权值第k小的点的权值。 树上主席树+LCA+任意路径问题 主席树维护的一个前缀和,而前缀和不一定要出现在一个线性表上(或者说树型可以线性话),即对于每个从根到点u的路径是一个线性序列,可以把这个序列建成主席树。 利用这个前缀和,我们可以解决一些树上任意路径的问题,比如在线询问[u,v]点对的距离——dist[u]+dist[v]-2*dist[LCA(u,v)]。 类似的,我们可以利用主席树来解决树上任意路径

2017-10-17 15:18:27 792

原创 HDU - 6203 ping ping ping LCA倍增算法+dfs序+线段树

题意:给出一颗以0为根有n+1个节点的树,给出p个条件,每个条件表示u,v之间有一个坏的节点,根据这p个条件求出树上至少有多少坏点。 LCA+dfs序+线段树 先跑出dfs序,并对LCA进行预处理。 然后把每组条件按照u,v的LCA为第一优先级丢到优先队列里, 且对于dfs序有个性质,如果P是U的祖先,则 p1[P] <= p1[U] <= p2[U] <= p2[P], 故每次对于每个LCA(u,v),u,v : 先判断 u,v是否存在被标记的祖先,如果都没有说明需要新标记一个点为坏点,即把LCA(u,v

2017-10-16 15:37:44 880

原创 Codeforces 620E New Year Tree dfs序+线段树+状态压缩

题意:给定一棵树,每个节点都有颜色,然后询问子树上有多少种不同的颜色。 dfs序+线段树+状态压缩 由于只有60种颜色(2^60 < 2^63),所以可以直接用二进制压位。 即sum[Ind]维护的是该区间的一个状态,从右向左第i位表示第i种颜色在该区间是否出现。 然后用上线段树区间修改+区间查询即可。 时间复杂度 O(nlogn) 空间复杂度 O(4*n)

2017-10-13 18:22:55 877

原创 POJ - 3321 Apple Tree dfs序+线段树 简单题

题意:初始时树上每个节点都有1个苹果,然后对一个节点操作,如果有苹果,就拿走,没苹果,就放上,然后询问以x为根的子树上有多少个苹果。 dfs序简单题 POJ这题好像没有开O2,vector<int> sons[MAXN];一直TLE,换了邻接表就过了。 时间复杂度 O(n) 空间复杂度 O(4*n)

2017-10-11 22:51:56 680

原创 HDU - 3887 Counting Offspring dfs序+线段树

题意:问对于每个节点,它的子树上标号比它小的点有多少个。 dfs序+线段树 关于dfs序: dfs序是处理树上问题很重要的一个工具,主要能够解决对于一个点,它的子树上的一些信息的维护,即用来处理子树的问题。 dfs序一般开的空间是n,因为只在入的地方时间戳++,出来的地方时间戳没有额外的++,线段树的每个节点应当是时间戳。 这里,因为点在它的子树上,所以在线段树中,故在它的两个时间戳的区间内([p1[i],p2[i]),所以我们只需要从小到大考虑,它的区间里有多少个点已经放入,然后再把它放入即可。 时间复

2017-10-11 19:14:37 682

原创 XIII Open Championship of Y.Kupala Grodno SU Grodno Problem E. Enter the Word Problem 贪心+后缀自动机

题意:这里对于生成一个字符串有2种操作,1、在末尾添加一个字母,花费代价为 1;2、在末尾添加一个substr,且该substr为已存在字符串的子串,花费代价为 1。 现给出需要构造出的字符串,为最小的构造代价。 贪心+后缀自动机 贪心策略是 对于剩下的字符串suf,取它的最大前缀 substr,且substr是已构造出的字符串pre的子串,如果substr为空则执行操作1,否则执行操作2,这样每次都添加尽可能多的字母,所以代价是最少的。 所以对于前缀pre建立后缀自动机,每次把suf丢进去匹配,其最大的

2017-10-06 14:10:40 1162

空空如也

空空如也

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

TA关注的人

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