算法-树形动态规划
YxuanwKeith
这个作者很懒,什么都没留下…
展开
-
HNOI2014 世界树 基于虚树的树形动态规划
HNOI2014 世界树 基于虚树的树形动态规划原创 2016-06-06 22:59:48 · 2272 阅读 · 5 评论 -
JZOJ4760【雅礼联考GDOI2017模拟9.4】同桌的你 环套树拆边DP
题目大意有NN个人,给定他们的性别和他们期望的同桌。现在要把这NN个人两两分配成同桌,问最多有多少对同桌中至少有一个人的同桌是期望的同桌,在满足这个的前提最多有多少对满足要求的同桌的性别是不同的。(有tt组数据。)N≤106N \leq 10^6 t≤3t \leq 3解题思路我们可以把每个人向他的期望同桌连一条边。那么显然连完后的图是由若干个环套树组成的。那么问题就转化成了,在这幅图中,能找到对原创 2016-09-06 17:09:26 · 1255 阅读 · 0 评论 -
51Nod 算法马拉松18 复杂度分析 二进制按位累计代价
题目大意给出一棵n个点的树(以1号点为根),定义dep[i]为点i到根路径上点的个数。众所周知,树上最近公共祖先问题可以用倍增算法解决。现在我们需要算出这个算法精确的复杂度。我们定义计算点i和点j最近公共组先的精确复杂度为bit[dep[i]−dep[lca(i,j)]]+bit[dep[j]−dep[lca(i,j)]](bit[i]表示i在二进制表示下有多少个1,lca(i,j)表示点i和点j的原创 2016-09-27 19:14:17 · 798 阅读 · 0 评论 -
CodeChef March Challenge 2017 题解
CC XENTASK由于要交替选,所以要不第一个人选位置为奇数的数,第二个人选位置为偶数的数,要不第一个人选位置为偶数的数,第二个人选位置为奇数的数。取最小值即可。#include <cstring>#include <cstdio>#include <algorithm>using namespace std;int n, sum[2][2];void solve() { memset原创 2017-03-13 20:26:30 · 1316 阅读 · 0 评论 -
ZJOI2017 仙人掌 转化模型后的简单树形dp
题目大意给定一个nn个点,mm条变的无向无自环的连通图,问都多少种加边方案使得加完边的图是一幅没有重边仙人掌。(即满足任意一条边只属于一个简单环中的无向无自环图的连通图) 多组数据。∑n≤5∗105\sum_n \leq 5*10^5 ∑m≤106\sum_m \leq 10^6解题思路首先讨论给定的图是树的情况。(转化一) 要求不能有边存在与两个简单环内相当于我们要加入新的边去覆盖这个树,是原创 2017-03-26 10:14:23 · 1622 阅读 · 0 评论