
dp
wtcl
这个作者很懒,什么都没留下…
展开
-
Hang Gliding(dp)
在对线段排完序之后s[i][j]已经不能表示第i个人的第j个工作的价值,应该是s[i][leg[j].x]. 怎么老有坑让我掉。。。。以前竟然没有这样错过 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<vector> using namespace std; struct Node{ int l,r,w,id; }leg[原创 2020-10-10 10:29:35 · 284 阅读 · 0 评论 -
2020百度之星 Chess HDU - 6787(线性dp)
思路: 1.其实是很基础的dp,关键是比赛的时候没有想到用dp,觉得是到组合数学问题。一维数组 二维矩阵上的最优解问题,个数问题可以多多考虑dp。 2.dp[i][j]表示可以到达i且已经放了j个传送器的方案数(i位置一定没有放传送器) 3.因为一定可以到达i,所以[i-11,i-1]范围内一定有一个位置没有放传送器。 把dp[i][j]表示的集合按照i之前最近的没有放置传送器的位置划分为: dp[i-k][j-k+1] (i-11<=k<=i-1),则[i-k+1,i-1]全部都有传送器。 #原创 2020-07-27 01:34:36 · 219 阅读 · 1 评论 -
牛客多校五 Drop Voicing(思维+最长上升子序列)
思路: 比赛时一个很大的错误在于根本没有想过把这个序列变成一个环。 但其实上次多校才刚刚做过这么一道题。 • 我们将模型转换成有一个圆盘,圆盘上有n个位置,且有一个指针(初始时指针指向原 来的最后一个元素) • 连续若干次操作1等价为改变指针指向的数所处的位置 • 连续若干次操作2等价为改变指针的位置 • 容易观察到,我们只需要取环上最长的一个上升子序列,然后调整其它数,即可得到答案 #include<cstdio> #include<cstring> #include<ios原创 2020-07-25 21:46:41 · 148 阅读 · 0 评论 -
Codeforces Round #642 (Div. 3)F - Decreasing Heights(枚举+dp)
题意: 有一个 n * m 的地图,每个位置有高度 a_ij,每次你可以向下或者向右走,并且只能向高度高 1 的位置走。你可以修改地图上某一处的高度,每次可以选一个位置高度减一,问最少修改多少次可以使得从 (1,1) 走的到 (n, m)。 讲解:https://www.bilibili.com/read/cv6065203/ #include<cstdio> #include<cstring> #include<iostream> #include<algor.原创 2020-05-16 16:08:29 · 136 阅读 · 0 评论