NOIp_动态规划
文章平均质量分 59
le0tan
Per Aspera Ad Astra
展开
-
【tyvj】【区间dp】石子合并
【问题描述】在一个操场上摆放着一行共n堆的石子。现要将石子有序地合并成一堆。规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆石子数记为该次合并的得分。请编辑计算出将n堆石子合并成一堆的最小得分和将n堆石子合并成一堆的最大得分。【输入文件】输入第一行为n(n<1000),表示有n堆石子,第二行为n个用空格隔开的整数,依次表示这n堆石子的石子数量(<=1000)【输出文件】输出将n堆石子合并成一堆的原创 2016-11-02 16:34:02 · 357 阅读 · 0 评论 -
【NOIp 2014】【二维dp】飞扬的小鸟
描述Flappy Bird 是一款风靡一时的休闲手机游戏。玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙。如果小鸟一不小心撞到了水管或者掉在地上的话,便宣告失败。 为了简化问题,我们对游戏规则进行了简化和改编: 游戏界面是一个长为 n,高为 m 的二维平面,其中有k 个管道(忽略管道的宽度)。 小鸟始终在游戏界面内移动。小鸟从游戏界面最左边 任意整数高原创 2016-11-11 23:25:49 · 358 阅读 · 0 评论 -
【NOIp模拟】【dp】俄罗斯方块
Description小松鼠开心地在树之间跳跃着,突然她停了下来。因为眼前出现了一个 拿着专克超萌小松鼠的法宝————超萌游戏机的游客! 超萌游戏机之所以拥有这个名字,是因为它的屏幕是一个n × 2的矩形。 小松鼠接过游戏机,开始了她的第一个游戏:俄罗斯方块。 考虑到小松鼠的智商,游戏机里的方块只有下面四种,方块按顺序下落,* * **** **原创 2016-11-14 13:38:08 · 591 阅读 · 0 评论 -
【NOIp复习】dp复习列表
1、背包问题01背包完全背包多重背包混合背包二维花费(包括限制物品件数的变式)分组背包(dp方程为第k组花费为c选或者不选)有依赖背包问题——树形dp2、树状dp没有上司的舞会(练习多叉树转左儿子右兄弟树,处理有依赖的背包问题)皇宫看守(还没有ac,有时间尝试以下把状态表示换成dp[i][0/1/2]代表当前有看守、父节点有看守、子节点有看守?)3、区间dp石子归并(线性)原创 2016-11-02 20:43:33 · 592 阅读 · 0 评论 -
【vijos】【树形dp】佳佳的魔法药水
描述得到一种药水有两种方法:可以按照魔法书上的指导自己配置,也可以到魔法商店里去买——那里对于每种药水都有供应,虽然有可能价格很贵。在魔法书上有很多这样的记载:1份A药水混合1份B药水就可以得到1份C药水。(至于为什么1+1=1,因为……这是魔法世界)好了,现在你知道了需要得到某种药水,还知道所有可能涉及到的药水的价格以及魔法书上所有的配置方法,现在要问的就是:1.最少花多少钱可以配制成功这种珍贵的原创 2016-11-09 20:50:49 · 320 阅读 · 0 评论 -
【背包dp】背包九讲笔记
背包问题笔记1、01背包 特点:物品要么选要么不选(0/1),背包恰好装满 用dp[i][v]代表前i件物品放进容量为v的背包所能达到的最大价值 决策:第i件物品放或者不放 如果要放:dp[i][v]=dp[i-1][v-w[i]]+val[i] 如果不放:dp[i][v]=dp[i-1][v]原创 2016-11-02 09:37:03 · 898 阅读 · 0 评论 -
【tyvj1052】【树状dp】没有上司的舞会
描述Ural大学有N个职员,编号为1~N。他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。每个职员有一个快乐指数。现在有个周年庆宴会,要求与会职员的快乐指数最大。但是,没有职员愿和直接上司一起与会。输入格式第一行一个整数N。(1接下来N行,第i+1行表示i号职员的快乐指数Ri。(-128接下来N-1行,每行输入一对整数L,K原创 2016-10-31 15:21:03 · 404 阅读 · 0 评论 -
【树形dp】一些例题
SGU 134 题目链接: http://acm.sgu.ru/problem.php?contest=0&problem=134题意: 求一个数的重心,即把这个点去掉后,剩余几个连通分量中点最多的那个连通分量点最少。思路:跑一遍树形dp得到每一个节点为根节点的子树节点数sum[i],对于有n个点的树,去掉一个节点后形成了两个连通分量:1、sum[i]个i节点的子树原创 2016-11-02 07:34:39 · 467 阅读 · 0 评论 -
【tyvj】【dp】最长公共子序列(LCS)
描述一个字符串A的子串被定义成从A中顺次选出若干个字符构成的串。如A=“cdaad",顺次选1,3,5个字符就构成子串"cad",现给定两个字符串,求它们的最长共公子串。输入格式第一行两个字符串用空格分开。 输出格式最长子串的长度。 思路#include #include #include #include #define INF 0xf原创 2016-11-02 11:58:07 · 588 阅读 · 0 评论 -
【tyvj】【dp】回文词(IOI2000)
描述 回文词是一种对称的字符串。也就是说,一个回文词从左到右与从右到左读,得到的结果应该是一样的。由此,可以这样来说,如果我们任意给定一个字符串,通过插入若干个字符,都可以变成一个回文词。现在你的任务是编一程序,求出将给定的字符变成回文词所需插入的最少的字符数。比如,对字符串“Ab3bd”,在插入两个字符之后就可以变成一个回文词:“dAb3bAd”或者“Adb3bdA”。可以看出,插入两原创 2016-11-02 12:49:33 · 1208 阅读 · 0 评论 -
【tyvj】【dp】合唱队型
描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1Ti+1>…>TK(1 你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。输原创 2016-11-02 15:05:41 · 419 阅读 · 0 评论 -
【tju】【dp】调整队形
问题描述学校艺术节上,规定合唱队要参加比赛,各个队员的衣服颜色不能很混乱:合唱队员应排成一横排,且衣服颜色必须是左右对称的。 例如:“红蓝绿蓝红”或“红蓝绿绿蓝红”都是符合的,而“红蓝绿红”或“蓝绿蓝红”就不符合要求。 合唱队人数自然很多,仅现有的同学就可能会有3000个。老师希望将合唱队调整得符合要求,但想要调整尽量少,减少麻烦。以下任一动作认为是一次调整: 1、在队伍左或右边加一个人(衣服原创 2016-11-02 16:16:08 · 561 阅读 · 0 评论 -
【NOIp 2015】【动态规划】子串
描述有两个仅包含小写英文字母的字符串 A 和 B。现在要从字符串 A 中取出 k 个互不重叠的非空子串,然后把这 k 个子串按照其在字符串 A 中出现的顺序依次连接起来得到一 个新的字符串,请问有多少种方案可以使得这个新串与字符串 B 相等?注意:子串取出的位置不同也认为是不同的方案。格式输入格式第一行是三个正整数 n,m,k,分别表示字符串 A 的长度,字符串 B 的长度,以及问 题描述中所提到的原创 2016-11-10 18:06:38 · 465 阅读 · 0 评论