随笔分类 - 动态规划
摘要:【题目链接】 点击打开链接 【算法】 动态规划 f[i][j][k]表示前i行,有j列放了1个,有k列放了两个 分六种情况讨论即可 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 数位DP,注意处理前导零的情况 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 f[i][j]表示第i位,数位和对10取模余j的数的个数 状态转移,计算答案都比较简单,笔者不再赘述 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 数位DP 和上一题 : HDU3555很像 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 数位DP 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 很明显,我们可以用状态压缩动态规划解决此题 f[n][m]表示n-1行已经放满,第n行状态为m的合法的方案数 状态转移方程很好推 注意这题时限较紧,注意加一些小优化 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 树形DP即可 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 树形DP求树的重心 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 如果(u,v)的距离为2,那么有两种可能 : 1.u和v为祖孙关系 2.u和v为兄弟关系 树形DP即可,详见代码 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 概率DP 先跑一遍floyed,求出每个教室之间的最短路径,存在数组dist[][]中,时间复杂度O(V^3) 设计状态,f[i][j][k]表示当前选到第i个教室,已经选了j个教室,当前这个教室选不选(0..1) 那么,状态转移方程是什么呢? 假设当前选到第i
阅读全文
摘要:【题目描述】 白日梦 (daydream.c/cpp/pas) 时间限制: 1 s 空间限制: 256 MB 题目描述 SR需要相当大的睡眠量 某日,他做了一个奇怪的梦,他梦见自己成为了怪物猎人,为了狩猎,他要去一个岛上住N+1天(编号为0到N)。这个岛位于太平洋中心,每天要么是晴天,要么刮台风。
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 这是一道经典的最值查询(RMQ)问题。 我们首先想到线段树。但有没有更快的方法呢?对于这类问题,我们可以用ST表(稀疏表)算法求解。 稀疏表算法。其实也是一种动态规划的算法。是先做一遍预处理,然后O(1)求出答案。 设计状态 : f[i][j] 表示从第i个数开
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 状压DP 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 状压DP f[i][S]表示走的最后一步在i,状态为S 于是我们可以用最短路径 + 状压DP解决此题,由于不存在负边,所以可以用dijkstra+堆优化 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 不难看出,这题可以用动态规划来解决 f[i][j]表示第i行第j列能够取得的最大分数 则如果向右走,状态转移方程为f[i][j]=max{f[i-1][k]+a[i][k]+a[i][k+1]+...+a[i][j]}(i-T<=k<=j) 如果向左走,则状态转
阅读全文

浙公网安备 33010602011771号