题目链接 https://atcoder.jp/contests/agc007/tasks/agc007_e 题解 首先有个很朴素的想法是,二分答案\(mid\)后使用可行性DP, 设\(dp[u][x][y]\)表示\(u\)子树内是否可以找到一条路径,在经过第一个叶子前路程是\(x\), 经过最后一个叶子前路程是\(y\). 这个DP显然做了很多无用功,比如我们发现完全可以只记录true的状态\((x,y)\),进一步发现如果合法状态\((x,y)\)存在另一合法状态\((x',y')\)满…
AGC007E Shik and Travel 题目大意:\(n\) 个点的二叉树,每个点要么两个儿子,要么没有儿子,每条边有边权. 你从 \(1\) 号节点出发,走到一个叶子节点.然后每一天,你可以从当前点走到另一个叶子.最后回到 \(1\) 号节点,要求到过所有叶子并且每条边经过恰好两次.求一种遍历顺序,使得每相邻两叶子间的边权和的最大值最小. 题解 考虑二分最大值,看是否可行.这个点是一种类似等号转限制的做法. 因此我们只需考虑能否在不经过权值和大于 \(k\) 的叶子间的路径即可.这个怎…
题意 Sunke 有一棵 \(N + 1\) 个点的树,其中 \(0\) 为根,每个点上有 \(0\) 或 \(1\) 个石子, Sunke 会不停的进行如下操作直至整棵树没有石子 : 把 \(0\) 上面的石子从树上拿走放入口袋 ; 把每个点上的石子移到其父亲上 ; 对于每个点 , 若其石子数 \(≥ 2\) , 则移除该点所有石子(不放入口袋). 求对于所有 \(2^{N+1}​\) 种放置石子的方案 , 最终 Snuke 口袋中石子数是多少 , 对 \(10^9+7​\) 取模 . \((…
题目链接 BZOJ4919 题解 链上的\(LIS\)维护一个数组\(f[i]\)表示长度为\(i\)的\(LIS\)最小的结尾大小 我们可以用\(multiset\)来维护这个数组,子树互不影响,启发式合并 一个点取更新数组时,只会改变第一个比它大的地方,因为这个点一定是将比它小的位置\(+1\),只有\(+1\)后位置的值比它大才会产生贡献 所以找到第一个大于等于当前节点权值的位置,改为当前节点权值即可 复杂度\(O(nlog^2n)\) #include<algorithm> #incl…
题目 给定一棵n节点的 以1为根的 满二叉树 (每个非叶子节点恰好有两个儿子)n−1 条边. 第ii条边连接 i+1号点 和 ai, 经过代价为vi设这棵树有m个叶子节点定义一次合法的旅行为:(1) 旅行m+1天, 旅行从11号点出发, 最后回到11号点(2) 第 1 ..m天, 每天 从上一天的结束点出发, 前往一个叶子节点, 然后结束这一天 (记第0天的结束点为1) 第 m+1 天, 从上一天的结束点出发, 前往1号点(3) 旅行过程中, 每条边恰好经过两次定义一天的花费为 : 起点到终点的…
Shik and Travel Time Limit: 50 Sec  Memory Limit: 512 MB Description 给定一棵n个点的树,保证一个点出度为2/0. 遍历一遍,要求每条边被经过两次,第一次从根出发,最后一次到根结束,在叶子节点之间移动. 移动一次的费用为路径上的边权之和,第一次和最后一次免费,移动的最大费用 最小可以是多少. Input 第一行一个n,表示点数. 之后两个数x, y,若在第 i 行,表示 i+1 -> x 有一条权值为 y 的边. Output…
题目链接 AtCoder:https://agc007.contest.atcoder.jp/tasks/agc007_e 洛谷:https://www.luogu.org/problemnew/show/AT2172 Solution 首先由于每条边只能经过两次,所以每次到了\(x\)点就会遍历完\(x\)子树再出来. 考虑二分答案,设当前二分的答案为\(mid\). 设二元组\((a,b)_x\)表示\(x\)子树下第一次走代价为\(a\)最后一次为\(b\),且中间的过程都\(\leqsl…
LINK:Druzyny 这题研究了一下午 终于搞懂了. \(n^2\)的dp很容易得到. 考虑优化.又有大于的限制又有小于的限制这个非常难处理. 不过可以得到在限制人数上界的情况下能转移到的最远端点 且这个数组是单调的. 而下界是随意的. 这个可以利用单调队列做 也可以暴力线段树. 然后考虑怎么优化 考虑CDQ分治 不过这里算是基于时间的分治吧. 大体上就是求出来左边让左边对右边进行贡献. 考虑这部分怎么做 左边为 \([l,mid]\)右边为\(mid+1,r\) 分别设两个决策\(j,i\…
题面 题目背景 因为出题人天天被 ZZH(Zou ZHen) 吊打,所以这场比赛的题目中出现了 ZZH . 简要题面 数据范围 题解 (笔者写两个log的平衡树和启发式合并卡过的,不足为奇) 首先,很容易看出来n^2的做法是个树形DP,而且不是换根DP(笔者想换根DP想了半小时,发现题读难了,唉), 设 dp[i] 为从 i 出发的答案,容易想到这样的状态转移: (depth是从1到每个点的距离,即深度,ancestors是每个点的祖先集) 怎么办,j 好像要在 i 的子树中枚举? 但是这个式子…
HDU 3433 A Task Process Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1368    Accepted Submission(s): 684 Problem Description There are two kinds of tasks, namely A and B. There are N workers…