![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划dp
GOTOTHEBAD
这个作者很懒,什么都没留下…
展开
-
2017金马五校赛 F.A序列(LIS)
题目传送门思路:求A序列(先是单调递增然后单调递减),相当于求当前位置的最长递增子序列和反方向的最长递增子序列,取其中小的乘以2减1就是最长的A序列。就是求两次LIS问题,然后遍历找最大A序列。下面是代码:#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<stack>#include<al原创 2017-07-12 11:05:14 · 360 阅读 · 0 评论 -
UVALive 6042 Bee Tower (dp)
题目:传送门思路:题目要求能从地面开始跳到最高的塔,在满足这个条件的前提下移动塔,并求出移动塔的最小花费。那么先找到最高的塔,然后向左右两边遍历,看看是否能到达地面,然后用dp求解最小移动花费。#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<queue>#include<map>#inc原创 2017-08-26 12:01:13 · 282 阅读 · 0 评论 -
AtCoder Grand Contest 019 C - Fountain Walk (LIS)
题目:传送门思路:想要走最短距离,肯定是两点之间的曼哈顿距离最短,并且走过最多的喷泉。因为是最短,所以只能往终点方向移动,求一下起点到终点之间喷泉y坐标的最大单调序列,就能知道最多经过多少喷泉。有一种特殊情况,就是起点到终点的每一行或者每一列都有可走的喷泉(如下图),这样就要多算1/4个圆周。 代码如下:#include<iostream>#include<cstdio>#include<cs原创 2017-08-27 11:24:05 · 1103 阅读 · 0 评论 -
GYM 101485D Debugging(记忆化搜索)
题目题意:一段程序中有一个bug,现在用在程序中插入printf的方式来debug。程序一共n行,编译运行到出错的时间是r,插入一次printf花费的时间是p。求使用最优策略时输出最坏时间来找到崩溃线。思路:一个长度为k的代码块可以分成2,3,4,···,k个代码块,相当于二分,三分,四分,···,k分。bug出现在其中某一块,再对这块进行划分。答案要求最坏时间,那么划分块中最长的块作为bug出现的原创 2018-02-24 16:06:50 · 323 阅读 · 0 评论 -
HDU 5745 La Vie en rose(bitset+dp)
题目:传送门 题意:给你一个p模式串,根据1、2两条规则变形,然后在s串中找符合p模式串的位置。 题解:bitset就相当于一个bool类型的数组,但是它可以方便的进行位运算,比如int类型最多进行32位的位运算,bitset可以进行任意位的位运算,具体资料以及各种操作的复杂度可以百度。然后讲讲dp部分,dp[now][i]存的是now位置i状态下满足条件的位置。另外开一个bitset数组a[26...原创 2018-07-10 11:32:28 · 211 阅读 · 0 评论