上一页 1 ··· 76 77 78 79 80 81 82 83 84 ··· 109 下一页

2019年3月11日

poj3417lca+树上差分

摘要: /* 给定n个点的树,在其中加入m条新边(称为非树边) 现在可以割断一条树边,一条非树边,使图分裂成两个联通块,请问有几种切割方式 对树边进行分情况讨论 如果树边不处在环中,则割断这条树边后可以割断任意条非树边 如果树边仅仅被一个环包含,则割断这条树边后只能割断一条非树边,即环中的那条非树边 如果树边被两个及以上环包含,就不可能有合法的切割方式 那么考虑如何计算树边被... 阅读全文

posted @ 2019-03-11 15:49 zsben 阅读(90) 评论(0) 推荐(0) 编辑

直径上的乱搞 bzoj1999求树直径上的结点+单调队列,bzoj1912负权树求直径+求直径边

摘要: 直径上的乱搞一般要求出这条直径上的点集或者边集 bzoj1999:对直径上的点集进行操作 bzoj1912 负权树求直径(只能用树形dp),然后记录直径上的边来回溯到两端点,同时将直径上的边权变负 阅读全文

posted @ 2019-03-11 13:55 zsben 阅读(202) 评论(0) 推荐(0) 编辑

两种lca的求法:树上倍增,tarjan

摘要: 第一种:树上倍增 f[x,k]表示x的2^k辈祖先,即x向根结点走2^k步达到的结点。 初始条件:f[x][0]=fa[x] 递推式:f[x][k]=f[ f[x][k-1] ][k-1] 一次bfs预处理f数组(nlogn),然后每次询问都可以在(logn)时间内求出x,y的lca 求lca的步骤 阅读全文

posted @ 2019-03-11 00:23 zsben 阅读(286) 评论(0) 推荐(0) 编辑

2019年3月10日

bzoj1912 树形dp求直径(新写法),求直径的两端点

摘要: 通过回溯法可以求出直径的两个端点,同时注意有负权边的树求直径不可以用两次dfs来求,而必须用dp做 阅读全文

posted @ 2019-03-10 22:45 zsben 阅读(230) 评论(0) 推荐(0) 编辑

树的直径小结

摘要: 树中最远的两个节点之间的距离被称为树的直径,链接这两个点的链为最长链(也称直径) 树形dp求树的直径 考虑求经过结点x的最长链的长度f[x],那么直径就是max{f[x]} 求f[x]数组:经过x结点的最长链的长度由四个部分组成:儿子yi的最大深度,(x,yi),儿子yj的最大深度,(x,yj) 显 阅读全文

posted @ 2019-03-10 17:45 zsben 阅读(134) 评论(0) 推荐(0) 编辑

spfa+01 规划

摘要: 尼玛的哪里错了。。 下面这样的就没问题了。。 阅读全文

posted @ 2019-03-10 16:48 zsben 阅读(329) 评论(0) 推荐(0) 编辑

[Gym-102091E] How Many Groups

摘要: /* 先将a数组从小到大排序 dp[i][j][k]表示到以第i个数为结尾的,且第i个数改了j次,第i个数改动值为k-1的集合最大值 ans是dp过程中的最大集合大小 状态转移: 首先是到i改动为0次的情况: 如果a[i]-a[i-1]2 k:0->2 先给定初始状态值 dp[i][j][k]=1 然后是枚举i-1的所... 阅读全文

posted @ 2019-03-10 00:33 zsben 阅读(451) 评论(0) 推荐(0) 编辑

2019年3月8日

cf1084d 非常巧妙的树形dp

摘要: /* 给定n城市,m条道路,每条路耗油w,每个点有油a[i],从任意点出发,求最大可以剩下的油 dp[i]表示从i开始往下走的最大收益,ans表示最大结果 因为走过的路不能走,所以可以想到最优解肯定经过某个点u,其余点都是其子节点 并且即使有分叉,也一定在这个点u上 那么在dp时先处理好子节点,获得所有的dp[son],然后再更新dp[u]和ans即可 */ #include using ... 阅读全文

posted @ 2019-03-08 16:30 zsben 阅读(236) 评论(0) 推荐(0) 编辑

cf1133 bcdef

摘要: b所有数模k,记录出现次数即可 c尺取 d,用map<pair<ll,ll>,int>来统计二元组<a[i]/gcd,b[i]/gcd>的最大出现次数即可,注意特判 e,线性dp f1找最大点度数最大的生成树 f2 阅读全文

posted @ 2019-03-08 09:26 zsben 阅读(243) 评论(0) 推荐(0) 编辑

2019年3月7日

poj2728 生成树01分数规划 (二分答案)

摘要: 给定整数序列a,b,求出下式的最大值 sum{ai*xi}/sum{bi*xi},xi=0|1 通俗来说,就是选出一些整数对(ai,bi),使得选出的a之和与选出的b之和商最大化 二分答案L,即选出的a之和与b之和的商是L 判断L是否成立,只要判断是否存在sum{ai-L*bi}>0即可 poj27 阅读全文

posted @ 2019-03-07 17:17 zsben 阅读(418) 评论(0) 推荐(0) 编辑

上一页 1 ··· 76 77 78 79 80 81 82 83 84 ··· 109 下一页

导航