随笔分类 -  $DP$

1
摘要:"$problem$" 此题是一道01背包。 关于01 背包 我不想讲了 "$MY \ BLOG$" $$这道题是一道基础的01背包问题$$ $$设f[i][j]=k表示前i张牌构成分值j的最小次数k$$ $$设 dis = a[i] b[i]$$ //不反转 $$f[i][j+dis+N]=min 阅读全文
posted @ 2019-04-05 12:07 Isaunoya 阅读(258) 评论(0) 推荐(0) 编辑
摘要:"此处" 阅读全文
posted @ 2019-04-05 11:24 Isaunoya 阅读(98) 评论(0) 推荐(0) 编辑
摘要:01背包 阅读全文
posted @ 2019-04-04 22:42 Isaunoya 阅读(887) 评论(0) 推荐(0) 编辑
摘要:"problem" ~~~ include define rep(i,j,n) for(register int i=j;i=n;i ) define low(x) x&( x) using namespace std ; typedef long long LL ; const int inf = 阅读全文
posted @ 2019-04-04 22:08 Isaunoya 阅读(125) 评论(0) 推荐(0) 编辑
摘要:背包? 跑完并查集 分组背包完事 ~~~ include define rep(i,j,n) for(register int i=j;i=n;i ) define low(x) x&( x) using namespace std ; typedef long long LL ; const in 阅读全文
posted @ 2019-04-01 19:05 Isaunoya 阅读(160) 评论(0) 推荐(0) 编辑
摘要:"problem" 题目大意:求一条路径$from(1,1)\ to (n,n)$ 求0的个数 无非就是拆解 有几个10乘起来 $10\ = \ 2 \ \ 5 $ 那么单独存在$ 2\ or \ 5$的时候肯定不能构成。 设一条路径有x个2 y个5。 所以就是求一条路径下的 $Min(x,y)$ 阅读全文
posted @ 2019-03-31 13:28 Isaunoya 阅读(125) 评论(0) 推荐(0) 编辑
摘要:"$problem$" 与 "这题" 灰常的相似 然后内存可能过大 开个滚动数组 因为数塔问题总是 只需要上面一行的两个状态(这题就是数塔问题) 下面的代码与原题不符。(原题要输出路径)~~想抄的可以走了~~ 输出路径只需要数组记录一下就好了。 ~~~ ifdef Dubug endif inclu 阅读全文
posted @ 2019-03-31 12:59 Isaunoya 阅读(157) 评论(0) 推荐(0) 编辑
摘要:"problem" ~~毒瘤~~$DP$ ~~~ ifdef Dubug endif include using namespace std; typedef long long LL ; inline LL In() { LL res(0),f(1); register char c ; whil 阅读全文
posted @ 2019-03-28 21:51 Isaunoya 阅读(198) 评论(0) 推荐(0) 编辑
摘要:"$problem$" 看到这题 好几种方法 1.搜索 大概有一部分分 2.记忆化搜索 预计100pts 3.DP 预计100pts 4.滚动数组优化DP 预计100pts 1.不带记忆化的搜索妥妥的超时 2.记忆化搜索? 三个维度? 内存太大? 时间还是$O(玄学)$的。 3.DP 能过 但是可以 阅读全文
posted @ 2019-03-21 20:08 Isaunoya 阅读(197) 评论(0) 推荐(0) 编辑
摘要:"$problem$" 这种题目需要一个定理 $a[1]+a[2]+a[3]+a[4]...=(a[1]%mod)+...$ ~~本人出奇的懒~~ 然后 动态规划?~~(恰似枚举)~~ ~~~ include using namespace std ; typedef long long LL ; 阅读全文
posted @ 2019-03-17 22:53 Isaunoya 阅读(91) 评论(0) 推荐(0) 编辑
摘要:"$problem$" 给定一个包含n个顶点m条边的带权有向图,找一条边数最多的路径,且路径上的边的权值严格递增。 图中可能有重边和自环。 $题意非常简单:n个点 m个带权边 最多能连成多少条边$ $看起来像搜索 就拿搜索水了一波$ $然后吧评测都卡爆了(而且只有9pts)$ ~~总是觉得好亏~~ 阅读全文
posted @ 2019-03-17 14:27 Isaunoya 阅读(218) 评论(3) 推荐(0) 编辑
摘要:P2419 [USACO08JAN]牛大赛Cow Contest 海星 这题代码比较短 (哪题Floyd代码长的) 太真实了 直接上代码吧 这题就是一个经典的传递闭包问题 可以用拓扑排序啥的 不过还是Floyd简便一下 阅读全文
posted @ 2019-03-04 22:19 Isaunoya 阅读(292) 评论(0) 推荐(0) 编辑
摘要:P2935 [USACO09JAN]最好的地方Best Spot Floyd的水题(黄题) 海星。 这可能是我第一道发的Floyd的博客 这个是Floyd的算法 很简单就三行 仅此而已 但是 这个是一种方法 简单的说 Floyd是一种DP 求最短路(最长路)反正比spfa啥的好打 最关键就是时间复杂 阅读全文
posted @ 2019-03-04 22:05 Isaunoya 阅读(147) 评论(0) 推荐(0) 编辑
摘要:T3做不来。。 直接滚去T4 orz 乍一看 T4是个DP 题干 复杂度??(N^4) 咋优化。。。 还带一只捆绑 捆绑啥的最烦人了 最后20pts 直接废了 T了 很烦 不过拿到80pts已经很开心了惹 关于100pts ↓ 阅读全文
posted @ 2019-03-02 19:46 Isaunoya 阅读(444) 评论(0) 推荐(0) 编辑
摘要:题面 数位DP+状压。 首先,按照数位DP的基本套路,每个个位数的最小公倍数为2520,所以只用考虑模2520的情况。考虑一个DP。dp[i][j][k]表示当前是第i位,2~9的数的集合为j,模2520为k的方案数。然后,就是数位DP的基本套路解决这道题。 跑的好慢啊QwQ 阅读全文
posted @ 2019-03-02 13:23 Isaunoya 阅读(161) 评论(0) 推荐(0) 编辑
摘要:这题就没得暴力前缀和了(老老实实打DP) 输入样例 7 1 7 3 5 9 4 8 输出样例 4 解题思路 1.找子问题 “求序列的前n个元素的最长上升子序列的长度”是个子问题,但这样分解子问题,不具有“无后效性”,因为假设F(n) = x,但可能有多个序列满足F(n) = x。有的序列的最后一个元 阅读全文
posted @ 2019-02-24 17:35 Isaunoya 阅读(365) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.org/problemnew/show/P1719 这道题挺好做的 又是一道练前缀和的题 前缀和的代码 同样 这需要DP来降低时间复杂度 提高效率orz 阅读全文
posted @ 2019-02-24 15:53 Isaunoya 阅读(365) 评论(0) 推荐(0) 编辑
摘要:这道题下面这么写就够了(n<=100)暴力,枚举 然后如果说要提升的话(n<=1000) 二维前缀和 然后在提升->(n<=5000)动态规划 DP 阅读全文
posted @ 2019-02-24 15:47 Isaunoya 阅读(119) 评论(0) 推荐(0) 编辑
摘要:看一下题目 和普通的数字三角形看似没啥区别(区别很大) 然后去想:DP方程 这是普通的数字三角形的方程。。。然后你会发现跟这道题没啥直接关系 主要是这道题目比较毒瘤 因为 有的时候局部最优≠全局最优 所以...这题 仔细一看 mod 100 就说明了 余数 肯定<100 然而 动态规划的每一维都是表 阅读全文
posted @ 2019-02-24 15:41 Isaunoya 阅读(210) 评论(0) 推荐(0) 编辑
摘要:百度百科↓ 动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了 阅读全文
posted @ 2019-02-24 11:40 Isaunoya 阅读(196) 评论(0) 推荐(0) 编辑

1
TOP