随笔分类 -  动态规划

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