随笔分类 -  数据结构->stl应用

摘要:题解 虽然要求一个dfs序,但是不是从根开始贪心 从最小的点开始贪心,最小的点显然是父亲选了之后马上就选它 那么我们每次把最小的点和父亲合并,两个联通块之间也是如此 对于两个联通块,他们合并的顺序应该是平均值较小的更靠前 因为有两个联通块和为$S_i$和$S_j$,大小为$B_i$和$B_j$ 如果 阅读全文
posted @ 2018-11-04 20:31 sigongzi 阅读(394) 评论(0) 推荐(0)
摘要:题解 终于了解怎么动态维护虚树了 就是把点按照dfs序排个序啊 这道题显然是求虚树上所有边长的两倍 我们把dfs序排完序,相邻两个点加上路径长(包括首尾),删除的时候删一个点减去它到两边再加上新近相邻的两个点即可 增加同理 代码 cpp include define fi first define 阅读全文
posted @ 2018-11-01 11:18 sigongzi 阅读(245) 评论(0) 推荐(0)
摘要:A Two Abbreviations 如果有最小答案的话这个答案一定是N和M的lcm 我们考虑一下什么情况下 $k \frac{L}{N} = h \frac{L}{M}$且$k,g$互质 显然是在$k = \frac{N}{gcd(N,M)},h = \frac{M}{gcd(N,M)}$的时候 阅读全文
posted @ 2018-10-17 17:36 sigongzi 阅读(443) 评论(0) 推荐(0)
摘要:题解 我们枚举右端点判断合法的左端点有哪些 首先,记录一下右端点右边的点的pre,也就是这个数字前一个出现的位置,取所有小于枚举右端点r的值中最大的一个做为l,用优先队列维护即可,[l + 1,r]就是可能取到的左端点的区间 然后我们对于每一种数字,最前一次出现的位置p,最后一次出现的位置q,覆盖[ 阅读全文
posted @ 2018-06-19 18:57 sigongzi 阅读(124) 评论(0) 推荐(0)
摘要:题解 断环为链,把链复制两份 用set维护一下全是0的区间,然后查找x + n / 2附近的区间,附近各一个过不去,最后弃疗了改为查附近的两个,然后过掉了= = 熟练掌握stl的应用,你值得拥有(雾 代码 cpp include // define ivorysi define enter putc 阅读全文
posted @ 2018-06-09 15:46 sigongzi 阅读(187) 评论(0) 推荐(0)
摘要:题解 这道题很显然可以想出来一个$n^2$的dp,也就是dp[u][i]表示以u为根的子树最大值是i的点集最大是多少(i是离散化后的值) 就是对于每个儿子处理出后缀最大值然后按位相加更新父亲,我们把最大值处理成差分来存储,儿子们的最大值按位相加等于差分按位相加,后缀最大值出现了变化仅当加入了父亲节点 阅读全文
posted @ 2018-06-06 16:36 sigongzi 阅读(477) 评论(0) 推荐(0)
摘要:You have won a contest sponsored by an airline. The prize is a ticket to travel around Canada, beginning in the most western point served by this airl 阅读全文
posted @ 2017-02-17 20:45 sigongzi 阅读(624) 评论(0) 推荐(0)
摘要:Letter games are popular at home and on television. In one version of the game, every letter has a value, and you collect letters to form one or more 阅读全文
posted @ 2017-02-02 11:37 sigongzi 阅读(512) 评论(0) 推荐(0)
摘要:For a given set of K prime numbers S = {p1, p2, ..., pK}, consider the set of all numbers whose prime factors are a subset of S. This set contains, fo 阅读全文
posted @ 2016-11-27 14:33 sigongzi 阅读(367) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2016-10-23 19:04 sigongzi 阅读(3) 评论(0) 推荐(0)