摘要: N - Slimes 原题链接:https://atcoder.jp/contests/dp/tasks/dp_n 题目大意: 石子合并问题。 解题思路: 区间dp就是先维护小区间,在扩展到大的区间。 代码: 1 #include <bits/stdc++.h> 2 using namespace 阅读全文
posted @ 2020-05-08 20:54 yya雨 阅读(352) 评论(0) 推荐(0) 编辑
摘要: O - Matching 原题链接:https://atcoder.jp/contests/dp/tasks/dp_o 题目大意: 有n个男人,n个女人,然后一男一女组合,其中一个二维矩阵a[i][j]记录第i个男人,与第j个女人能不能组合,求有多少种组合方式。 解题思路: 状压dp:用一个n为二进 阅读全文
posted @ 2020-05-08 20:42 yya雨 阅读(337) 评论(0) 推荐(0) 编辑
摘要: P - Independent Set 原题链接:https://atcoder.jp/contests/dp/tasks/dp_p 题目大意: 给一棵树,用黑白两色给节点染色,其中两个相邻节点不能同为黑色,求染色的所有方法。 解题思路: 树形$dp$,建一个二维数组$dp$,$dp[i][j]$为 阅读全文
posted @ 2020-05-08 20:30 yya雨 阅读(240) 评论(0) 推荐(1) 编辑
摘要: Q - Flowers 原题链接:https://atcoder.jp/contests/dp/tasks/dp_q 题目大意: n支花,第i支花的高为w[i],价值为v[i],其中每支花的高度都不相同,范围在1到n。求从给定的花的序列中找到一段高度递增的子序列,求这段子序列的价值最大值。 解题思路 阅读全文
posted @ 2020-05-08 20:20 yya雨 阅读(376) 评论(0) 推荐(0) 编辑
摘要: R - Walk 原题链接:https://atcoder.jp/contests/dp/tasks/dp_r 题目大意: 给一个有向图,求经过k条边的路径个数(允许重复)。 解题思路: 倍增folyd算法,求解一个图中经过k条边的路径最大距离或最小距离或经过k条边的路径有多少个时要用到,也叫做矩阵 阅读全文
posted @ 2020-05-08 19:58 yya雨 阅读(336) 评论(1) 推荐(1) 编辑
摘要: S - Digit Sum 原题链接:https://atcoder.jp/contests/dp/tasks/dp_s 题目大意: 给一个n,求从1到n的数中,所有位上的数字之和能被m整除的个数。 解题思路: 数位$dp$,建一个三维数组,$dp[i][j][k]$,其中,$i$代表第几位,j代表 阅读全文
posted @ 2020-05-08 19:45 yya雨 阅读(375) 评论(0) 推荐(0) 编辑