Loading [MathJax]/jax/element/mml/optable/GeneralPunctuation.js

随笔分类 -  动态规划

摘要:"题目链接" 最长公共上升子序列 f[i][j]表示A的前i个数,匹配B的第j个数,且B[j]必选时的最长公共上升子序列长度 转移: 阅读全文
posted @ 2019-11-11 11:44 yjk 阅读(141) 评论(0) 推荐(0) 编辑
摘要:"第一题" 考虑树上DP,f[i][j][0/1]表示以i为根的子树,入读为零点的个数为j,点i的入度为0/不为0时的方案数 转移的时候考虑u的一个子树v的贡献,分类讨论边(u,v)的两个方向的两个方案,具体的转移方程看代码 记录子树size,利用“刷表法”,只进 阅读全文
posted @ 2019-11-04 16:45 yjk 阅读(109) 评论(0) 推荐(0) 编辑
摘要:"链接" 对于每个状态f[j]多记录一个维度,转移的时候利用类似于归并排序的方法合并,以保证时间复杂度可以承受 注意事项:前K大可以有重复的价值 cpp include include include using namespace std; const int MAXK=55; const 阅读全文
posted @ 2019-10-26 18:39 yjk 阅读(154) 评论(0) 推荐(0) 编辑
摘要:"题目链接" 先把1作为根求每个子树的size,算出把1作为集会点的代价,不难发现把集会点移动到u的儿子v上后的代价为原代价 vsize\ 边权+(总的size vsize)\ 边权 cpp include include include define i 阅读全文
posted @ 2019-10-26 17:08 yjk 阅读(134) 评论(0) 推荐(0) 编辑
摘要:"题目链接" 二分答案,判断需要断几条边,用f[i]表示以i为根的子树断边后的最长路径,对于一个点u,存在f[v]mid时就删到v的边f[v1]+f[v2]mid时就删f较大的边,可以sort之后搞一搞 阅读全文
posted @ 2019-10-26 16:45 yjk 阅读(149) 评论(0) 推荐(0) 编辑
摘要:"题目链接" 首先把商店按坐标排序 dpi,j表示前i个商店买了j吨饲料并运到终点的花费,二进制拆分优化转移 阅读全文
posted @ 2019-10-21 11:44 yjk 阅读(143) 评论(0) 推荐(0) 编辑
摘要:题目描述 .png) 数据范围 1N,K109 solution 集合S中每个元素互不影响,不妨依次考虑其中一个元素在三角形中的出现情况 问题转化为一个0/1的三角形{Ai,j},用0表示选了,1表示没选,那么如果Ai,j1阅读全文
posted @ 2019-10-21 11:19 yjk 阅读(142) 评论(0) 推荐(0) 编辑
摘要:"题目链接" 神奇的幻方 按照题意模拟 信息传递 不难想到这是一个基环树的森林,找一个最小环就可以了 斗地主 毒瘤搜索题,时限不紧,但是要考虑全所有情况 需要注意的一些地方: 先枚举顺子、再枚举四带二、三带一/二、炸弹等 最后剩下的单牌、对子可以一次统计出来 顺子不一定越长越好,不能有2、大小王 两 阅读全文
posted @ 2019-10-09 17:02 yjk 阅读(175) 评论(0) 推荐(0) 编辑
摘要:"题目链接" 生活大爆炸版石头剪刀布 就是个模拟,不说了 联合权值 枚举每个点,统计它任意两个儿子的联合权值,统计的时候维护sum和max就行了 飞扬的小鸟 比较好的DP题,不难想到用dp[i][j]表示到达第i列,高度j的最小点击次数,直接枚举i,j转移到下一列的位置会TLE,需要优化 cpp i 阅读全文
posted @ 2019-10-08 14:49 yjk 阅读(164) 评论(0) 推荐(0) 编辑
摘要:题解 显然2048一定是若干个2k(0k11)凑出来的,我们不妨先将不是2k的数去掉; 然后考虑求出剩下的数中有多少个子序列能凑出2048 我们可以考虑DPf[i][j]表示前i个数凑j的方案数,背包就可以,第一维可以滚动数组干掉 需要注意 阅读全文
posted @ 2018-11-05 17:12 yjk 阅读(254) 评论(0) 推荐(0) 编辑
摘要:"团队题目链接" 王强的疑惑(math) 时限:2s 空间:256MB 【题目背景】 ​ 在遥远的DeepDark星系中,生活着一种神奇的生物——王强,他们鳝长于AK OI 比赛,在一个van物复苏的季节,一只年轻的雄性王强开 阅读全文
posted @ 2018-11-05 17:09 yjk 阅读(150) 评论(0) 推荐(0) 编辑
摘要:看到“L 的最小值”,很容易想到二分答案,那么这道题的关键就是如何快速地检验 首先,如果已经规定了操作顺序,我们可以O(n)贪心求解 但是要枚举顺序的话复杂度是阶乘级别的,显然布星 于是考虑DP,我一开始的DP状态:dp[i][j]表示干掉前ifa坛,用j次红光时的 阅读全文
posted @ 2018-10-16 21:31 yjk 阅读(162) 评论(0) 推荐(0) 编辑
摘要:奶牛会展 "题目链接" 由于智商之和或情商之和不能为负数,所以直接把智商+情商 0的奶牛加上是布星的 我们考虑背包,不妨将智商当做物品大小,将情商当做价值 我们要求 大小+价值 的最大值 dp[j]表示智商为j时情商的最大值 当智商为负数时,dp[j]是会爆炸的,所以我们用$dp[j 阅读全文
posted @ 2018-09-21 21:43 yjk 阅读(195) 评论(0) 推荐(0) 编辑
摘要:子矩阵 题目链接 搜索枚举选了哪几行,将DP降为一个一维的问题, 先预处理出w[i]表示该列上下元素差的绝对值之和 v[i][j]为第i列和第j列对应元素之差的绝对值之和 f[i][j]表示前j列中选i列,且最后一列为j的最小消耗 f[i][j]=min(f[i][j],f[i-1][j-k]+v[ 阅读全文
posted @ 2018-08-03 19:23 yjk 阅读(149) 评论(0) 推荐(0) 编辑
摘要:小a和uim之大逃离 题目链接 因为每次只能向下或向右走,我们可以递推 dp[i][j][d][0/1]表示走到(i,j),mod k 意义下差值为d,轮到小a/小uim操作时的方案数 dp[i][j][d][0]=dp[i-1][j][(d-a[i][j]+k)%k][1]+dp[i][j-1][ 阅读全文
posted @ 2018-08-03 19:12 yjk 阅读(100) 评论(0) 推荐(0) 编辑
摘要:有线电视网 题目链接 树形DP,分组背包 dp[u][i][j]表示以u为根的子树,前i个子树中选j个用户的最大收益. dp[u][size[u]][0]=0; dp[u][i][j]=max(dp[u][i][j],dp[u][i-1][j-k]+dp[v][size[v]][k]-w[u][v] 阅读全文
posted @ 2018-08-03 18:45 yjk 阅读(117) 评论(0) 推荐(0) 编辑
摘要:重建道路 题目链接 一场可怕的地震后,人们用N个牲口棚(1≤N≤150,编号1..N)重建了农夫John的牧场。由于人们没有时间建设多余的道路,所以现在从一个牲口棚到另一个牲口棚的道路是惟一的。因此,牧场运输系统可以被构建成一棵树。John想要知道另一次地震会造成多严重的破坏。有些道路一旦被毁坏,就 阅读全文
posted @ 2018-08-03 18:38 yjk 阅读(120) 评论(0) 推荐(0) 编辑
摘要:棋盘制作 题目链接 这个题是[USACO5.3]巨大的牛棚Big Barn和玉蟾宫的结合 一道顶两道毒瘤! 题解: 首先,棋盘有两种选法: 1.任意白格(x,y) (x+y)%2=0 ,任意黑格(x,y) (x+y)%2=1 2.任意白格(x,y) (x+y)%2=1 ,任意黑格(x,y) (x+y 阅读全文
posted @ 2018-08-03 18:28 yjk 阅读(154) 评论(0) 推荐(0) 编辑
摘要:午餐 题目链接 DP题都辣么毒瘤的么。。 首先,看一下题解 我们就有了思路: 贪心:显然,让吃饭慢的先打饭,sort一遍(证明?不存在的。。 DP:f[i][j][k]表示前i个人,窗口1的打饭时间为j,窗口2的打饭时间为k的最早吃完饭的时间 对于每个人,有两种方案:1.在窗口1打饭 2.在窗口2打 阅读全文
posted @ 2018-08-03 16:22 yjk 阅读(119) 评论(0) 推荐(0) 编辑
摘要:运 【问题背景】 zhx 和妹子们玩数数游戏。 【问题描述】 仅包含 4 或7 的数被称为幸运数。 一个序列的子序列被定义为从序列中删去若干个数, 剩下的数组成的新序列。 两个子序列被定义为不同的当且仅当其中的元素在原始序列中的下标的集合不 相等。 对于一个长度为N的序列, 共有2^N个不同的子序列 阅读全文
posted @ 2018-07-26 16:10 yjk 阅读(176) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示