"STA树的深度" 题目大意 给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 Input 给出一个数字N,代表有N个点.N include include include define int long long using namespace std; inline i ...
分类:
其他好文 时间:
2020-04-13 18:07:00
阅读次数:
59
一.题解 ? 这道题又是一道换根dp板子题,代码结构与 "Accumulation Degree" 这道题基本一致,唯一不同的就是转移了【不过转移的时候,因为方程的原因不需要特殊考虑叶节点】 ? 我们先套路的设$dp[i]$ 表示以 $i$ 为根的子树中 , 所有点的深度和 ,现在,我们来想想转移。 ...
分类:
其他好文 时间:
2020-04-13 12:33:24
阅读次数:
53
2020-04-13 11:38:31 问题描述: 给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。 示例: 输入: 13输出: 6 解释: 数字 1 出现在以下数字中: 1, 10, 11, 12, 13 。 问题求解: 可以使用数位dp进行高效求解。 dp[pos][c ...
分类:
其他好文 时间:
2020-04-13 12:33:12
阅读次数:
64
换根dp板子题 ,首先,我们要想想如果根为1时,1的答案 我们设$dp[i]$表示以$i$为根子树的中,若$i$有无限流量,i点能往下流的最大流量。 我们不难推出式子$dp[i]=\sum_{v\in son(i)}min(dp[v],w(u v))$ 意义就是,我们知道一个儿子v可以向下流的最大流 ...
分类:
其他好文 时间:
2020-04-13 12:26:06
阅读次数:
53
B(DP) 最重要的是状态转移对同一阶段的影响, 就像01背包优化为什么要倒叙,但这道题不光要倒叙,还要把这阶段的转移先存起来,最后统一保存 就避免了转移同一阶段相互影响 至于排序,当然希望升级多余的经验越多越好。 #include <bits/stdc++.h> #define RE regist ...
分类:
其他好文 时间:
2020-04-12 22:14:12
阅读次数:
104
LINK: "Removing Robots" 没想到 自闭。 考虑了一个容斥 发现不合法方案难以计算。 就算可以计算也几乎是n^2的做法。 考虑dp 左边会对右边产生影响 所以考虑先dp右边的再考虑左边的。 至于dp 自然是f[i]表示这个i~n这么多点的方案数。 设 i向右第一个影响不到的点为w ...
分类:
其他好文 时间:
2020-04-12 20:47:37
阅读次数:
67
单调队列,即内部元素相对于比较器有序的队列,可以方便的查询序列中某个连续区间内的最大/最小值 也能在状态转移时优化决策以降低时间复杂度。(嗯,这句是OI-Wiki上说的,作为蒟蒻qwq我并不知道如何优化dp) 比如我们想知道一个长为n的数字序列中每连续k个数中最小的那个数 如果暴力求解的话,遍历从1 ...
分类:
其他好文 时间:
2020-04-12 20:39:47
阅读次数:
87
题目:有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小 很显然我们可以用DP水掉这道题的大多数分。设f_max[i][j][k]表示以坐标[i,j]为右下角,边长为k的正方形的最大值,最小值同理再设一个。 因为每次处理的时候正方形边长+1 ...
分类:
其他好文 时间:
2020-04-12 20:31:52
阅读次数:
80
/* 首先考虑dp状态:dp[i][j][k]表示考虑了前i个任务,凑成的第一级经验是j,第二级经验是k的用时 由于一级完成任务溢出的经验会给二级,所以任务完成顺序是对结果有影响的: 3 10 2 5 3 4 2 5 4 3 3 2 5 1 4 这组数据,如果先完成任务一或任务二,那么最终是完不成升 ...
分类:
编程语言 时间:
2020-04-12 20:17:30
阅读次数:
88
题目描述 输入 输出 样例 样例输入 8 1 4 5 6 4 5 6 7 6 8 2 4 3 4 View Code 样例输出 7 分析 这道题数据有1000000,把每一个顶点都枚举一次显然不现实,肯定会T掉 所以,我们还是从图中找规律 按照习惯,我们先把1号节点作为根节点模拟一下 我们可以很容易 ...
分类:
其他好文 时间:
2020-04-12 18:09:09
阅读次数:
71