![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划DP
xuanzo
这个作者很懒,什么都没留下…
展开
-
C-Cities(区间DP)
C-Cities(区间DP)题意:给n个数。每次操作可以将连续的一段相同(可以只有一个数)的数变为任意数。求最少多少次操作可以使所有数都相同。思路:区间DP,直接区间DP会超时。需要进行优化,对于区间[L,R],可以找到与a[r]相同的数,然后把区间分为两半。如果a[l]==a[r],则dp[L][R]–;代码:#include<bits/stdc++.h>using namespace std;int n,a[5005],pre[5005];void solve(){原创 2021-04-27 20:33:14 · 208 阅读 · 0 评论 -
G-Human Pyramid(动态规划)
G-Human Pyramid(动态规划)题意:给一个h和s,h代表金字塔的高度(由h*(h+1)/2个人组成金字塔),s代表强壮的人的人数。强壮的人必须由在地面或者由强壮的人支撑。求有多少种安排?思路:如果一个位置是强壮的人,则其下方全是强壮的人。并且其右下方也为强壮的人。dp[i][j][k]表示从右往左数第i列,总共使用了j个强壮的人,当前列使用k个强壮的人的方案数。对于第p列使用j个强壮的人,则前一列至少使用j-1个人。状态转移方程为:dp[i][j][k]=dp[i][j][k+1原创 2021-04-27 20:20:25 · 374 阅读 · 0 评论