随笔分类 -  dp

摘要:https://www.acwing.com/problem/content/1086/ \(cpp负数的取模:(-a)\%b (a\%b)\) 状态表示 \(f[i][j][x]:有i位最高位位j且所有位之和对p取模的值为x\) 状态计算 \(f[i][j][x]+=f[i-1][k][mod(x 阅读全文
posted @ 2021-02-02 20:34 phr2000 阅读(59) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/1085/ \(此题需要注意的是要去前导零, 前面2道题可以直接把不足n位的数看成补上前导零的数, 这样做处理起来很方便, 但是此题不行.\) $本题如果也把不足n位的数看成补上前导零去算, last的更新会出现问题导致循 阅读全文
posted @ 2021-02-02 16:02 phr2000 阅读(54) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/1084/ \(f[i][j]:有i位且最高位为j的不增数.\) #include <bits/stdc++.h> using namespace std; #define IO ios::sync_with_stdio( 阅读全文
posted @ 2021-02-02 02:10 phr2000 阅读(50) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/1083/ 思路 这个题相当于把一个数字转化为$b$进制, 然后去看小于等于它的数中有多少个在$b$进制下, 有$k$个$1$且其他位全部为0. \(对于每一位x, 左边的分支为该位取0到x-1,首先该位可取0,然后有两种 阅读全文
posted @ 2021-02-02 01:17 phr2000 阅读(102) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/1079/ 树形dp + 状态机 此题于战略游戏类似, 但是由于要看的是节点而不是边, 所有两个状态不够. 状态表示 \(f[i][0]:点i被父节点看到\) \(f[i][1]:点i被子节点看到\) \(f[i][2]: 阅读全文
posted @ 2021-02-01 21:16 phr2000 阅读(52) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/1077/ \(对任意的数,它的约数和是不变的, 所有可以连\ sum[i]\rightarrow i\ 的边构成树\) \(最后的形式为\mathbf{森林}, 所以等价于对每一棵树上的节点求\mathbf{最长路径}\ 阅读全文
posted @ 2021-01-31 00:13 phr2000 阅读(92) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/1074/ $对于每个节点, 得到其最长路径和次长路径\ d_1 和\ d_2$​ \(最长路径\ d = d_1 + d_2\) #include <bits/stdc++.h> using namespace std; 阅读全文
posted @ 2021-01-30 23:22 phr2000 阅读(83) 评论(0) 推荐(0)
摘要:链接 : https://www.acwing.com/problem/content/287/ 状态表示 \(f[u][0] : 表示不要 u 点的最大价值\) \(f[u][1] : 表示要 u 点的最大价值\) 状态计算 $ \begin f[u][1] &+= \sum f[j][u]\ f 阅读全文
posted @ 2021-01-30 23:10 phr2000 阅读(39) 评论(0) 推荐(0)
摘要:来源 : https://www.acwing.com/problem/content/481/ 设一个n个节点的二叉树tree的中序遍历为(1,2,3,…,n),其中数字1,2,3,…,n为节点编号。 每个节点都有一个分数(均为正整数),记第i个节点的分数为di,tree及它的每个子树都有一个加分 阅读全文
posted @ 2021-01-25 20:23 phr2000 阅读(200) 评论(0) 推荐(0)
摘要:来源 : https://www.acwing.com/problem/content/322/ 在Mars星球上,每个Mars人都随身佩带着一串能量项链,在项链上有 N 颗能量珠。 能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。 并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于 阅读全文
posted @ 2021-01-25 20:22 phr2000 阅读(89) 评论(0) 推荐(0)
摘要:来源 : https://www.acwing.com/problem/content/1071/ 给定一个具有 N 个顶点的凸多边形,将顶点从 1 至 N 标号,每个顶点的权值都是一个正整数。 将这个凸多边形划分成 N−2 个互不相交的三角形,对于每个三角形,其三个顶点的权值相乘都可得到一个权值乘 阅读全文
posted @ 2021-01-25 20:18 phr2000 阅读(406) 评论(0) 推荐(0)
摘要:来源 : https://www.acwing.com/problem/content/1070/ #include <bits/stdc++.h> using namespace std; #define IO ios::sync_with_stdio(false);cin.tie(0); cou 阅读全文
posted @ 2021-01-25 20:15 phr2000 阅读(40) 评论(0) 推荐(0)
摘要:来源 : https://www.acwing.com/problem/content/284/ #include <bits/stdc++.h> using namespace std; #define IO ios::sync_with_stdio(false);cin.tie(0); cout 阅读全文
posted @ 2021-01-25 20:13 phr2000 阅读(42) 评论(0) 推荐(0)
摘要:来源 : https://www.acwing.com/problem/content/526/ **dancing links ** 该题为找到最少的抛物线覆盖所有坐标 #include <bits/stdc++.h> using namespace std; #define IO ios::sy 阅读全文
posted @ 2021-01-25 15:37 phr2000 阅读(37) 评论(0) 推荐(0)
摘要:来源 : https://www.acwing.com/problem/content/294/ 题意 司令部的将军们打算在 N*M 的网格地图上部署他们的炮兵部队。一个 N*M 的地图由N行M列组成,地图的每一格可能是山地(用”H” 表示),也可能是平原(用”P”表示),如下图。 在每一格平原地形 阅读全文
posted @ 2021-01-25 14:08 phr2000 阅读(99) 评论(0) 推荐(0)
摘要:来源 : https://www.acwing.com/problem/content/329/ 题意 农夫约翰的土地由 M * N 个小方格组成,现在他要在土地里种植玉米。 非常遗憾,部分土地是不育的,无法种植。 而且,相邻的土地不能同时种植玉米,也就是说种植玉米的所有方格之间都不会有公共边缘。 阅读全文
posted @ 2021-01-25 14:00 phr2000 阅读(256) 评论(0) 推荐(0)
摘要:来源 : https://www.acwing.com/problem/content/1066/ 在 n x n 的棋盘上放 k 个国王,国王可攻击相邻的 8 个格子,求使它们无法互相攻击的方案总数。 #include <bits/stdc++.h> using namespace std; #d 阅读全文
posted @ 2021-01-25 13:55 phr2000 阅读(115) 评论(0) 推荐(0)