```//以u为根节点//找u的最大子树 中的最大分支//直接连到u上//看看能不能满足条件#include #include #include #include using namespace std;const int N = 400010;struct Node{ int fi, se; vo... ...
分类:
其他好文 时间:
2020-05-06 09:12:09
阅读次数:
59
1 class Solution 2 { 3 public: 4 int maxProfit(vector<int>& prices, int fee) 5 { 6 int n = prices.size(); 7 vector<vector<int>> dp(n,vector<int>(2,0)) ...
分类:
其他好文 时间:
2020-05-05 19:52:50
阅读次数:
93
1.区分状态 1)确定状态,分解问题 2) 子问题,子问题关系 2.初始条件,边界条件 1) DP(0) 2) 计算顺序 3.针对问题 1)计数,多少种方式,多少种组合,硬币问题 2)最值,最优代价问题,背包问题 3) 存在性问题 ...
分类:
其他好文 时间:
2020-05-05 16:19:04
阅读次数:
53
$状态很容易设计$ $设dp[i][j][u][v]表示放了i个1兵种和j个2兵种$ $然后u不会0说明末尾放了连续u个1兵种,v不为0说明末尾放了连续v个2兵种$ ...
分类:
其他好文 时间:
2020-05-05 14:01:37
阅读次数:
58
Nastya and Scoreboard 思路:先确定每个位置上变成0~9需要额外点亮多少灯,因为需要用完k个灯,可以有前导零,我们从最后一位开始点亮灯,往前递推可行的方案。dp[当前位置][用了j个灯] = (可行,不可行)。 然后就判断能不能用完k个灯,可以得话从前往后以9~0顺序寻找最大数字 ...
分类:
其他好文 时间:
2020-05-05 12:40:34
阅读次数:
54
windy有 N 条木板需要被粉刷。 每条木板被分为 M 个格子。 每个格子要被刷成红色或蓝色。 windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色。 每个格子最多只能被粉刷一次。 如果windy只能粉刷 T 次,他最多能正确粉刷多少格子? 一个格子如果未被粉刷或者被粉刷错颜色, ...
分类:
其他好文 时间:
2020-05-05 12:38:43
阅读次数:
57
``` #include #include #include using namespace std; const int N=110,INF=0x3f3f3f3f; int n; int w[N]; char c[N]; int f[N][N]; int g[N][N]; int main() {... ...
分类:
其他好文 时间:
2020-05-05 00:55:06
阅读次数:
63
题面 这个题状态设计和状态转移方程都非常好设计好推,重点思考一下单调队列优化以及代码DP中一些初始化,转移要点的一些方法,尽量做到以后不再犯类似的错误。 F[i][j] 即第i天,当前手中有j的股票所能带来的最大价值。 分类讨论一下,今天可以买,可以不买,还可以卖。 买的话可以分为我今天第一次开始买 ...
分类:
其他好文 时间:
2020-05-05 00:24:39
阅读次数:
78
LINK: "分层图" 很精辟的一道题 写的时候没带脑子 导致搞了半天不知道哪错了。 可以想到状压每次到某一层的状态 然后这个表示方案数 多开一维表示此时路径条数的奇偶即可。 不过显然我们只需要知道路径条数的奇偶性即可。 所以对于当前状态 如果某个点路径条数为偶数 那么怎么转移都不必要 所以我们可以 ...
分类:
其他好文 时间:
2020-05-04 21:39:25
阅读次数:
76
``` #include #define ll long long using namespace std; const int N=1005; const int M=10005; int n,m,a[N],b[N],c[N]; int dp[N][M];//dp[i,j]从前i个中拿,体积为j的... ...
分类:
其他好文 时间:
2020-05-04 21:35:19
阅读次数:
52