随笔分类 - 动态规划
摘要:题号标题已通过代码题解/讨论通过率团队的状态 A All-one Matrices 点击查看 单调栈+前缀和 326/2017 通过 B Beauty Values 点击查看 进入讨论 827/1995 通过 C CDMA 点击查看 进入讨论 669/1115 通过 D Distance 点击查看
阅读全文
摘要:1002 Nonsense Time 题意 给定一个长度n($n \le 50000$)的排列$p_1, p_2, ... ,p_n$,给定一个长度为n的排列$a_1, a_2, ... ,a_n$. 初始排列p是不可见的,从1到n,第$p_{a_i}$个可见,输出此时可见p的LIS。 数据保证纯随
阅读全文
摘要:F maximum clique 1 题意 在n个数中,找出最多的子集,要求集合中任意两个数在二进制下不会出现只有一位不同。 思路 我们把只有一位数不同的点对相连。 注意到这个图是没有奇环的,所以是一个二分图,然后就是求二分图最大独立集的问题了。 学习这篇blog的思路就可以写出来 https://
阅读全文
摘要:K 题意 问一个字符串中有多少个连续子串是300的倍数 思路 O(300n)的dp即可 #include <bits/stdc++.h> using namespace std; #define pb push_back #define fi first #define se second #def
阅读全文
摘要:1001 Blank 题意 有一个长度为n(n<=100)的位子,填入四种颜色,有m个限制,某个区间的颜色个数要恰好等于x个。问颜色个数的方案数。 思路 DP 四维的DP,利用滚动数组优化一维空间。 我觉得这个构造的还是比较巧妙的。四维,每一维代表每个颜色最后出现的位子。 保证(i < j < k
阅读全文
摘要:link:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4027 题意: 有一个括号序列,每个括号对应一个值,现在可以使得相邻的()进行交换,并得到两个值的乘积,问最后能得到的最大值。 思路: 从后向前考虑,取后缀最大值。
阅读全文
摘要:题意 有一个只包含1和2的序列,试翻转一个区间,使得结果中非连续非递减数列最长。 思路 一、 作出1的前缀计数和为cnt1,2的后缀计数和为cnt2, 由于要找出【1,1,1】【2,2,2】【1,1,1】【2,2,2】的四段,设中间的分割点是p,k,q,可得到 ans=cnt1[p]+cnt2[p+
阅读全文
摘要:题意: 有n个区间,每个区间只能有一个斑点奶牛,问最多有几个斑点奶牛。 思路: 首先要处理出每个点的$L[i], R[i]$。 $L[i]$表示$L[i]~i-1$之间一定有一个点。i也是选中的。 $R[i]$表示$R[i]~i$之间只能有i这个点是选中的。 通过处理出$L[i]$和$R[i]$,$
阅读全文
摘要:传送门:https://codeforces.com/contest/1051/problem/E 题意: 把一个数分成许多小段,每一段的值在L和R间。问有多少种分法。 思路 : 首先,需要快速处理出每个位子 ,最近和最远可以组合的区间。如何处理这个区间,由于时限比较紧张,可以用哈希的方法,因为是长
阅读全文
摘要:传送门: 题意: 将一个数字串分成许多不同的小串,使得这些小串代表的数字严格递增,要求最后一个数字尽可能地小。 然后满足字典序尽可能大。 思路: 由于最后一个数字要尽可能地小,所以先处理出每个数的$L[i]$, 即第i位最少要和$L[i]$这个位子的值组合才能满足要求。求出$L[i]$后,固定好最后
阅读全文
摘要:传送门:https://www.luogu.org/problemnew/show/P2467 参考与学习:https://www.luogu.org/blog/user55639/solution-p2467 题意: 求波动数列 思路: 设$dp[i][j]$ 表示长度为$i$, 开始位子为$j$
阅读全文
摘要:传送门 题意: 给出一个序列,输出每个数x对应的一个ans,要求ans在数列中,并且ans & x = 0;数列的每个数小于(4e6) 思路: 这道题的方向比较难想。想到了就比较轻松了,可以这样考虑,如果(11011)2的答案知道了,那么(11001)2,(11000)2等的答案其实就是那个答案。
阅读全文
摘要:P2331 [SCOI2005]最大子矩阵 题意 : 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵不能相互重叠。 第一行为n,m,k(1≤n≤100,1≤m≤2,1≤k≤10),接下来n行描述矩阵每行中的每个元素的分值(每个元素的分值的绝对值
阅读全文
摘要:洛谷P2216 )逼着自己写DP 题意: 给定一个带有数字的矩阵,找出一个大小为n*n的矩阵,这个矩阵中最大值减最小值最小。 思路: 先处理出每一行每个格子到前面n个格子中的最大值和最小值。然后对每一列求出长度为n的前面算出来的最大值的最大值,前面算出来的最小值的最小值。如果直接做是n的三次方,但是
阅读全文
摘要:gym/102021/K 题意: 给定n(n<=60)个直线 ,长度<=1000; 可以转化为取 计算 ans = (sum + 10 - g) / ( n + 1) 在小于5的条件下的最大值,其中sum为任取n个的直线长度和,g是给定常数。 思路: 用类似背包的求法,把可能取到的结果用dp[i][
阅读全文
摘要:P2051 [AHOI2009]中国象棋 题意: 给定一个n*m的空棋盘,问合法放置任意多个炮有多少种情况。合法放置的意思是棋子炮不会相互打到。 思路: 这道题我们可以发现因为炮是隔一个棋子可以打出去,所以每一行每一列最多放置两个炮。 这样子我们就可以试着压缩状态,记录前i行有几列是放一个棋子的,有
阅读全文
摘要:P1070 道路游戏 题意: 有一个环,环上有n个工厂,每个工厂可以生产价格为x的零钱收割机器人,每个机器人在购买后可以沿着环最多走p条边,一秒走一条,每条边不同时间上出现的金币是不同的,问如何安排购买机器人,可以在m的时间内,得到最多的金币。 思路: $O(n^3)$的算法,设$DP[i]$ 为第
阅读全文
摘要:P2577 [ZJOI2005]午餐 )逼着自己做DP 题意: 有n个人打饭,每个人都有打饭时间和吃饭时间。有两个打饭窗口,问如何安排可以使得总用时最少。 思路: 1)可以发现吃饭时间最长的要先打饭。(我也是看别人题解才知道) 2)然后就是对于前i个人,他不是在一号窗口打饭,就是在二号窗口打饭。所以
阅读全文
摘要:P1169 [ZJOI2007]棋盘制作 (逼着自己做DP 题意: 给定一个包含0,1的矩阵,求出一个面积最大的正方形矩阵和长方形矩阵,要求矩阵中相邻两个的值不同。 思路: 悬线法。 用途: 解决给定矩阵中满足条件的最大子矩阵 做法: 用一条线(横竖貌似都行)左右移动直到不满足约束条件或者到达边界
阅读全文
摘要:Hello 2019 D 题意: 给定一个n,每次随机把n换成它的因数,问经过k次操作,最终的结果的期望。 思路: 一个数可以表示为质数的幂次的积。所以对于这个数,我们可以分别讨论他的质因子的情况。 假设质因子x的指数是j,那么这个质因子下一步可以变到的情况就有(j+1)种可能,利用概率DP算出k步
阅读全文

浙公网安备 33010602011771号