#include <iostream> #include <vector> using namespace std; using ll = long long ; const int N=2e5+10; ll f[N],g[N],size1[N]; vector<int>gg[N]; void df ...
分类:
其他好文 时间:
2021-06-02 17:01:29
阅读次数:
0
Description 思路 从样例的图片可以很好的理清思路。 设$dp[i]$为方案数,那么有两种贡献: 用等长的线段覆盖整个区间,共有$g(i)$种情况,其中$g(i)$代表$i$的约数个数。 中间留空,一共有$dp[i-1]+dp[i-2]+...+dp[1]$种情况。 所以转移式是 \(dp ...
分类:
其他好文 时间:
2021-06-02 16:08:48
阅读次数:
0
前言 能 \(\tt dp\) 就不要乱猜结论贪心。 题目 AtCoder 题目大意: 给出 \(n\) 个人的数轴上的坐标 \(a_i\),保证为偶数,每个人的速度至多为 \(1\),需要使得每一个 \(i\in[1,n-1]\),第 \(i\) 个人与第 \(i+1\) 个人相遇过,求最小时间。 ...
分类:
其他好文 时间:
2021-06-02 15:24:29
阅读次数:
0
one step, whole life 1. Architecture 1. <IDDD> stu, practice 2. <MicSer DP> stu 3. <Reactice Messaging Patterns> 2.Java Feature 1. Rx 2. WebFlux 3.Jav ...
分类:
其他好文 时间:
2021-06-02 15:20:57
阅读次数:
0
思考到树形dp,寻找某个子树上的根节点和他的儿子节点的关系。假设一个在节点u的子树上的答案ans,也就是节点u的子树里中的点构成的树,删掉的一些边后,构成的最长不超过k的链的构造方法数目。那么通过dp,u的解可以从遍历u的子节点v来推得。 在u吸收子节点们(v们)时,有两种可能,要么就是连一条边,要 ...
分类:
其他好文 时间:
2021-06-02 13:53:47
阅读次数:
0
正题 题目链接:https://www.luogu.com.cn/problem/P7600 题目大意 给出$n$个点的一棵树,边有边权,对于每个$k$求去掉最小边权和的点使得每个点的度数都不超过$k$。 \(1\leq n\leq 10^5\) 题目大意 APIO遇到的原题,和CF1119F一样, ...
原题链接 题意:每次加一个数,要求最小 $\sum max_ - min_, 题解:本来以为就是纯贪心,然后发现竟然是区间dp,就是先排完序,然后就加入然后取 \(min\)。 代码: #include <iostream> #include <bits/stdc++.h> using namesp ...
分类:
其他好文 时间:
2021-06-02 13:04:14
阅读次数:
0
考虑先做一个$O(n^2) 的 dp$ $f[i][j]$表示在$i$的子树中,距离当前点为$j$的点数 $g[i][j]$表示在$i$的子树中,两个点$lca$的距离为$d$,他们的$lca$到$i$距离为$d - j$的点对数。 那么怎么转移? \(ans += g[i][0],ans += g ...
分类:
其他好文 时间:
2021-06-02 12:14:22
阅读次数:
0
C. Valera and Elections dp + dfs 题意 一棵树, 树边有的有标记有的没标记, 如果选择一个点, 能将点到根最短路径上的边全部打上标记, 问最少选几个点, 使所有的边都被打上标记. 思路 \(f[i]:表示最少需要选择的点数使以i为根的子树都被标记.\) 因此如果u的邻 ...
分类:
其他好文 时间:
2021-06-02 10:31:19
阅读次数:
0
437. 路径总和 III class Solution: def pathSum(self, root: TreeNode, sum: int) -> int: dp = {} def search(root: TreeNode): if root: search(root.left) searc ...
分类:
编程语言 时间:
2021-05-24 17:23:14
阅读次数:
0