dp
文章平均质量分 92
千杯湖底沙.
退役了。
OI就到此为止吧。
呃我又回来了
展开
-
poj1958 Strange Towers of Hanoi
题目大意根据经典的汉诺塔问题改编而来。 汉诺塔(带过程的)题解原汉诺塔我们设d[i]d[i]d[i]为把iii个盘子转移的步数。 我们称使用三个塔的转移称为三塔模式。 因为当i>=2i>=2i>=2的时候,二塔模式无解,所以我们对iii个盘子转移的时候,只能分为1和i−11和i−11和i-1两个部分。 所以我们可以模拟: 从AAA柱子三塔模式下转移i−...原创 2018-07-06 14:39:02 · 196 阅读 · 0 评论 -
HLOJ490 状压例题4 炮兵阵地
题面题目描述 司令部的将军们打算在NM的网格地图上部署他们的炮兵部队。一个NM的地图由N行M列组成,地图的每一格可能是山地(用”H” 表示),也可能是平原(用”P”表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示: 输入格式 第一行包含两个由空格分割开的正整数,分别表示N和M; 接下来的N行,...原创 2018-05-18 20:45:29 · 221 阅读 · 0 评论 -
HLOJ482 判断数独_用来位运算练习,状态压缩入门
题面题目描述 数独是一款智力游戏,现给你一个数独,并需要你验证是否符合规则。 具体规则如下: 每一行都用到1,2,3,4,5,6,7,8,9,位置不限, 每一列都用到1,2,3,4,5,6,7,8,9,位置不限, 每3×3的格子(共九个这样的格子)都用到1,2,3,4,5,6,7,8,9,位置不限, 游戏的过程就是用1,2,3,4,5,6,7,8,9填充空白,并要求满足每行、每列、每个九宫格...原创 2018-05-11 21:48:08 · 540 阅读 · 0 评论 -
HLOJ455 苹果二叉树
题面题目描述 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点)。这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1。 我们用一根树枝两端连接的结点的编号来描述一根树枝的位置。下面是一颗有4个树枝的树: 2 5 \ / 3 4 \ / 1 现在这颗树枝条太多了,需要剪枝。但是一些树枝上长有苹果。 给定需要保留的树枝数量,...原创 2018-05-11 21:26:39 · 268 阅读 · 0 评论 -
HLOJ454 最大利润
题面题目描述 政府邀请了你在火车站开饭店,但不允许同时在两个相连接的火车站开。任意两个火车站有且只有一条路径,每个火车站最多有50个和它相连接的火车站。 告诉你每个火车站的利润,问你可以获得的最大利润为多少。 例如下图是火车站网络: 最佳投资方案是在1,2,5,6这4个火车站开饭店可以获得利润为90 输入格式 第一行输入整数N(<=100000),表示有N个火车站,分别用1...原创 2018-05-11 19:46:24 · 384 阅读 · 0 评论 -
HLOJ453 战略游戏
题面题目描述 Bob喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。他要建立一个古城堡,城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能了望到所有的路。注意,某个士兵在一个结点上时,与该结点相连的所有边将都可以被了望到。 请你编一程序,给定一树,帮Bob计算出他需要放置最少的士兵。 输入格式 输入文件中数据表示一棵树,描...原创 2018-05-11 19:34:40 · 498 阅读 · 0 评论 -
HLOJ445 创意吃鱼
题面题目描述 可爱猫猫家里长方形大池子中有很多鱼,她开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*)。她发现,把大池子视为01矩阵(0表示对应位置无鱼,1表示对应位置有鱼)有助于决定吃鱼策略。 在代表池子的01矩阵中,有很多的正方形子矩阵,如果某个正方形子矩阵的某条对角线上都有鱼,且此正方形子矩阵的其他地方无鱼,猫猫就可以从这个正方形子矩阵“对角线的一端”下口...原创 2018-05-09 18:43:46 · 187 阅读 · 0 评论 -
HLOJ444 矩阵切割
题面题目描述 给你一个矩阵,其边长均为整数。你想把矩阵切割成总数最少的正方形,其边长也为整数。切割工作由一台切割机器完成,它能沿平行于矩形任一边的方向,从一边开始一直切割到另一边。对得到的矩形再分别进行切割。 输入格式 输入文件中包含两个正整数,代表矩形的边长,每边长均在1—100之间。 输出格式 输出文件包含一行,显示出你的程序得到的最理想的正方形数目。题解这道题有区...原创 2018-05-08 21:45:12 · 363 阅读 · 0 评论 -
HLOJ442 农田个数
题目描述你的老家在农村。过年时,你回老家去拜年。你家有一片 N×M N×M 农田,将其看成一个 N×M N×M 的方格矩阵,有些方格是一片水域。你的农村伯伯听说你是学计算机的,给你出了一道题: 他问你:这片农田总共包含了多少个不存在水域的正方形农田。 两个正方形农田不同必须至少包含下面的两个条件中的一条: 边长不相等 左上角的方格不是同一方格 输入格式 输入数据第一行为两...原创 2018-05-08 21:20:24 · 409 阅读 · 0 评论 -
区间DP小结
题目在博客里留下了这几题的题解(比较有意思): 关灯 添加括号 合唱队 矩阵游戏特点区间DP的阶段划分依据往往是区间长度。 也就是最外层循环往往是枚举区间长度。 然后状态的转移千变万化,有可能是在一个区间两边加元素,也有可能是两个小区间合并成一个大区间。 区间DP有这几个要素吧:区间划分合并方式合并权值这几点弄清楚了区间DP就能A了。...原创 2018-05-01 19:24:20 · 167 阅读 · 0 评论 -
NOIP2000 方格取数(动态规划 详细解答)
这里我们按照一定的流程来做也就是把思维过程一步步写下来很多DP题都可以按照这个思维来做题目描述设有N∗NN∗NN*N的方格图(N<=9N<=9N000。如下图所示(见样例):A 0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 0 0 0 0 0 7 0 0 0 0 0 0 14 0 0...原创 2018-03-24 16:19:40 · 1061 阅读 · 0 评论 -
HLOJ486 种花小游戏
题目描述植物大战僵尸这款游戏中,还有个特别有意思的赚钱方式——种花(能长金币的花)。 种出来的金币需要玩家点击才能得到,或者,玩家可以购买一只蜗牛来帮助捡金币。然而,蜗牛爬得 慢是众所周知的。所以,场上有若干金币时,蜗牛总是喜欢以最少的行程来捡走所有的金币。 现在告诉你场上n个金币所在位置的坐标,以及蜗牛所在位置,让你求出蜗牛捡走所有金币的最小行程 。 输入格式 第一行一个正整数n,...原创 2018-03-03 19:18:16 · 884 阅读 · 0 评论 -
HLOJ415 拔河比赛
题面题目描述 一个学校举行拔河比赛,所有的人被分成了两组,每个人必须(且只能够)在其中的一组,要求两个组的人数相差不能超过1,且两个组内的所有人体重加起来尽可能地接近。 输入格式 输入数据的第1行是一个n,表示参加拔河比赛的总人数,n<=100,接下来的n行表示第1到第n个人的体重,每个人的体重都是整数(1<=weight<=450)。 输出格式 输出数据应该包...原创 2018-03-07 12:58:24 · 746 阅读 · 0 评论 -
HLOJ456 选课
题面题目描述 学校实行学分制。每门的必修课都有固定的学分,同时还必须获得相应的选修课程学分。学校开设了N(N < 300)门的选修课程,每个学生可选课程的数量M是给定的。学生选修了这M门课并考核通过就能获得相应的学分。 在选修课程中,有些课程可以直接选修,有些课程需要一定的基础知识,必须在选了其它的一些课程的基础上才能选修。例如《Frontpage》必须在选修了《Windows操...原创 2018-05-13 19:40:30 · 289 阅读 · 0 评论 -
HLOJ459[noi2011] 道路修建
题面题目描述 在 W 星球上有 n 个国家。为了各自国家的经济发展,他们决定在各个国家 之间建设双向道路使得国家之间连通。但是每个国家的国王都很吝啬,他们只愿 意修建恰好 n – 1 条双向道路。 每条道路的修建都要付出一定的费用,这个费用等于道路长度乘以道路两端 的国家个数之差的绝对值。例如,在下图中,虚线所示道路两端分别有 2 个、4 个国家,如果该道路长度为 1,则费用为 1×|2 –...原创 2018-05-13 20:56:12 · 283 阅读 · 0 评论 -
最长公共子序列转化最长上升子序列 n log n做法
题面题目描述 给出1-n的两个排列P1和P2,求它们的最长公共子序列。 输入输出格式 输入格式: 第一行是一个数n, 接下来两行,每行为n个数,为自然数1-n的一个排列。 输出格式: 一个数,即最长公共子序列的长度 题解如题。 我们让id[i]id[i]id[i]为数字i在P1中出现的位置。 然后对于第二行出现的数字j,我们只需要知道它在第一行出现的位置,放在数组...原创 2018-05-30 20:39:42 · 850 阅读 · 0 评论 -
[树状数组优化DP]BZOJ 2131 免费的馅饼
2131: 免费的馅饼Time Limit: 10 Sec Memory Limit: 259 MB Description Input 第一行是用空格隔开的二个正整数,分别给出了舞台的宽度W(1到10^8之间)和馅饼的个数n(1到10^5)。 接下来n行,每一行给出了一块馅饼的信息。由三个正整数组成,分别表示了每个馅饼落到舞台上的时刻t[i](1到10^8秒),掉到舞台上的格子...原创 2018-05-28 20:30:41 · 197 阅读 · 0 评论 -
HLOJ488 周伟壮压论文状压例题2
题面题目描述 给出一个n*m的棋盘 (n、m<=80,n ×m<=80),要在棋盘上放k(k<=20)个棋子,使得任意两个棋子不相邻。每次试验随机分配一种方案,求第一次出现合法方案时试验的期望次数,答案用既约分数表示。(约分完毕的分数) 输入格式 一行,三个整数n,m,k 输出格式 一行n/m,表示最后的答案 样例数据 input 1 2 1 output ...原创 2018-05-14 21:52:30 · 253 阅读 · 0 评论 -
HLOJ491 壮压例题5广场铺砖
题面题目描述 有一个W行H列的广场,需要用1*2小砖铺盖,小砖之间互相不能重叠,问有多少种不同的铺法? 输入格式 只有一行2个整数,分别为W和H,(1<=W,H<=11) 输出格式 只有1个整数,为所有的铺法数。 样例数据 input 2 4 output 5题解经典状态压缩例题。h位二进制数代表某一行的状态:1代表是竖砖的上半部分,0代表其他情况。...原创 2018-05-14 18:56:37 · 288 阅读 · 0 评论 -
noip2007 矩阵游戏
题面题目描述 帅帅经常更同学玩一个矩阵取数游戏:对于一个给定的 n∗m n∗m 的矩阵,矩阵中的每个元素a[i][j]据为非负整数。游戏规则如下: 1. 每次取数时须从每行各取走一个元素,共n个。m次后取完矩阵所有的元素; 2. 每次取走的各个元素只能是该元素所在行的行首或行尾; 3. 每次取数都有一个得分值,为每行取数的得分之和;每行取数的得分 = 被取走的元素值*...原创 2018-04-29 19:38:10 · 240 阅读 · 0 评论 -
COGS597 交错匹配
题意题意就是给出两个数列a和b,一个交错匹配是这样: a[i]=b[j]!=a[k]=a[l](i<k且j>l)a[i]=b[j]!=a[k]=a[l](i<k且j>l)a[i]=b[j]!=a[k]=a[l](il) 如果匹配之后连了线,交叉能且只能出现一次。 求出这两个数列最大的匹配数。题解先设出状态把。 f[i][j]代表数列a前i个数和数列b前j...原创 2018-04-16 19:22:58 · 395 阅读 · 0 评论 -
HLOJ429 配置魔药
题目题目描述 在《Harry Potter and the Chamber of Secrets》中,Ron的魔杖因为坐他老爸的Flying Car撞到了打人柳,不幸被打断了,从此之后,他的魔杖的魔力就大大减少,甚至没办法执行他施的魔咒,这为Ron带来了不少的烦恼。 这天上魔药课,Snape要他们每人配置一种魔药(不一定是一样的),Ron因为魔杖的问题,不能完成这个任务,他请Harry在魔...原创 2018-04-17 12:44:38 · 347 阅读 · 0 评论 -
HLOJ430 构建双塔
题意用一些有固定高度的方块堆成两座相同高度的塔,问塔最高高度。状态转移方程双进程dp f[j][k]代表一个塔高度为j,另一个塔高度为k的情况是否存在f[j][k]代表一个塔高度为j,另一个塔高度为k的情况是否存在f[j][k]代表一个塔高度为j,另一个塔高度为k的情况是否存在 我们可以轻易得出: f[j][k]=f[j−a[i]][k] || ...原创 2018-04-17 13:04:45 · 258 阅读 · 0 评论 -
HLOJ434 关灯
题目题目描述 宁智贤得到了一份有趣而高薪的工作。每天早晨她必须关掉她所在村庄的街灯。所有的街灯都被设置在一条直路的同一侧。 宁智贤每晚到早晨5点钟都在晚会上,然后她开始关灯。开始时,她站在某一盏路灯的旁边。 每盏灯都有一个给定功率的电灯泡,因为宁智贤有着自觉的节能意识,她希望在耗能总数最少的情况下将所有的灯关掉。 宁智贤因为太累了,所以只能以1m/s的速度行走。关灯不需要花费额外的时间,因为...原创 2018-04-17 19:50:59 · 394 阅读 · 0 评论 -
hnoi2010 合唱队
题面题目描述 为了在即将到来的晚会上有更好的演出效果,作为 AAA 合唱队负责人的小 A 需要将合唱队的人根据他们的身高排出一个队形。假定合唱队一共有 N 个人,第 i 个人的身高为 Hi 毫米(1000≤Hi≤2000),并且已知任何两个人的身高都不同。假定最终排出的队形是 N 个人站成一 排。 为了简化问题,小 A 想出了如下排队的方式:他让所有的人先按任意顺序站成一个初始队形,然后从...原创 2018-04-29 19:02:35 · 323 阅读 · 0 评论 -
HLOJ462【usaco2012dec】Nearby Cows
这道题目我水一波吧。。。 给一个大佬的题解: 题解地址 大佬信息转载 2018-05-13 21:39:19 · 254 阅读 · 0 评论 -
HLOJ421 潜水员的规划
题面题目描述 潜水员为了潜水要使用特殊的装备。他有一个带2种气体的气缸:一个为氧气,一个为氮气。让潜水员下潜的深度需要各种的数量的氧和氮。潜水员有一定数量的气缸。每个气缸都有重量和气体容量。潜水员为了完成他的工作需要特定数量的氧和氮。他完成工作所需气缸的总重的最低限度的是多少? 例如:潜水员有5个气缸。每行三个数字为:氧,氮的(升)量和气缸的重量: 3 36 120 10 2...原创 2018-03-07 20:46:54 · 418 阅读 · 0 评论 -
AHOI2001 HLOJ419 质数和分解
题面题目描述 任何大于 1 的自然数n都可以写成若干个大于等于2且小于等于n的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。 例如,9 的质数和表达式就有四种本质不同的形式: 9=2+5+2=2+3+2+2=3+3+3=2+7。 这里所谓两个本质相同的表达式是指可以通过交换其中一个表达式中 参加和运算的各个数的位置而直接得到另一个表达式。...原创 2018-03-07 18:31:13 · 475 阅读 · 0 评论 -
luoguP1020 导弹拦截 题解
题目题目描述某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是不大于50000的正整数),计算这套系统最多能拦截多少导弹,如果原创 2017-09-27 12:33:37 · 405 阅读 · 0 评论 -
luoguP1048 采药 题解
题目题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是辰辰,原创 2017-09-27 12:55:20 · 532 阅读 · 0 评论 -
luoguP2196 挖地雷 题解
题目题目背景NOIp1996提高组第三题题目描述在一个地图上有N个地窖(N<=20),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径。当地窖及其连接的数据给出之后,某人可以从任一处开始挖地雷,然后可以沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束。设计一个挖地雷的方案,使某人能挖到最多的地雷。输入输出格式输入格式: 输入文件mine.in有若干行。第1行只有一个数字原创 2017-09-27 13:31:33 · 1021 阅读 · 0 评论 -
luoguP2066 机器分配 题解
题目题目描述总公司拥有高效设备M台,准备分给下属的N个分公司。各分公司若获得这些设备,可以为国家提供一定的盈利。问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值。其中M≤15,N≤10。分配原则:每个公司有权获得任意数目的设备,但总台数不超过设备数M。输入输出格式输入格式: 第一行有两个数,第一个数是分公司数N,第二个数是设备台数M。接下来是一个N*M的矩阵,表明了第 I个公司分配原创 2017-09-27 18:22:35 · 456 阅读 · 0 评论 -
luoguP2782 友好城市 题解
题目题目描述已知一群猴子的数量再a~b之间(a<=b),同时又知每次m只猴子出圈(注意不是隔!!)。已知,求所有出圈可能中当猴王可能性最大的猴子的当大王的次数以及编号,若有多只,输出所有的猴子编号,中间用空格隔开输入输出格式输入格式: 第一行一个数a,b,m如题。输出格式: 两行,第一行为在a~b之间隔m个出圈可能当大王的编号的总数的最大值若干个数,即猴子的编号。输入输出样例输入样例#1: 1原创 2017-09-27 19:47:31 · 451 阅读 · 0 评论 -
[动态规划]花店橱窗布置
对于一道地道的DP题,首先要解决的是如何记忆化搜索,设置一个状态,这里我们看到有两个参数,f和v,自然就想到了用二维数组来保存状态了。 dp[i][j]dp[i][j]表示在第ii朵花摆在第jj个花瓶里的最大美学值。 所以状态方程就可以求出来了: dp[i][j]=max(dp[i−1][k])+a[i][j];(k∈[1,j−1])dp[i][j]=max(dp[i-1][k]原创 2017-11-29 20:43:48 · 758 阅读 · 0 评论 -
区间DP
区间DP区间dp就是在一系列的区间中搞特一些子dp,昂。 这玩意儿还得用具体的题目来说。 下面展示一些模型。石子合并题目链接:codevs石子合并分析这道题目跟合并果子很像啊!但是这道题目只能合并相邻的两堆石子。怎么合并的总得分最大呢,就要保证每一次合并后,得分都最大。符合最优性原则,可以用我们神奇的DP做。 这道题目就是典型的一个区间DP。我们可以知道,每一个区间的最优解都是由更小的区间的最原创 2017-10-30 18:15:30 · 276 阅读 · 0 评论 -
DP的单调性优化和斜率优化
背景搜索到DP的过渡搜索的艰辛记忆化出现了DP的基础DP的实现方法例题题面分析再谈LCS题面回忆一般的LCScode正解算法codeDP的优化单调性优化例题题面分析code例题题面分析code斜率优化例题分析code背景MZX大佬来这边的路真是艰辛啊!说好九点的飞机,十一点就能到,结果晚点到十点。到早上我们才知道他晚点到了一点,四点才到的海亮教原创 2017-10-29 07:26:17 · 914 阅读 · 0 评论 -
luoguP1216 数字三角形 题解
题目题目描述观察下面的数字金字塔。写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 在上面的样例中,从7 到 3 到 8 到 7 到 5 的路径产生了最大输入输出格式输入格式: 第一个行包含 R(1<=原创 2017-09-27 10:57:55 · 435 阅读 · 0 评论 -
luoguP1091 合唱队形 题解
纠正繁琐的方法这道题目其实不需要对于每一个I都计算下左右两边最长的下降序列之和的。我感觉我的方法很清晰明了,也少了很多重复搜索的过程。我的方法是:类似于打表一样的先求出1~n每一个元素的最长下降序列,再求出1~n每一个元素的最长上升序列;分别存在两个数组里面(b数组和c数组),最后定义一个整型变量ans来枚举最大的b[I]+c[I],也就是两边最长序列之和最大,就可以保证留下的人数最大,也就可以保证原创 2017-09-12 15:26:02 · 288 阅读 · 1 评论 -
概率和期望
(在此鸣谢yty提供故事的人物材料)引子概率是一个玄学的东西 。有个认知方面的误区就是,各位oier在小学和初中的时候接触到的概率都是一个叫做“古典概率”的东西,这是很只是概率这一个大旗帜下的一个小喽啰,真正的概率水深着呢。先讲个故事吧(about Pascal & Fermat)by《数学一本通》yty是hh的基友,有一天,yty跟hh说,他对赌博饥渴难耐,hh很无奈,只能陪yty进行了一场赌博。原创 2017-11-02 14:31:23 · 13038 阅读 · 7 评论 -
DP复习——最长公共子序列 LCS 问题
LCS如果有两个串s1s1s1和s2s2s2,在它们所有相同的子序列中,长度最大的,就是最长公共子序列的长度。状态转移方程这个问题中的每一个状态都跟两个串有关系,所以状态我们设置为二维。f[i][j]f[i][j]f[i][j]代表s1s1s1的前iii个字符和s2s2s2的前jjj个字符最长公共子序列长度。 我们采用O(n2)O(n2)O(n^2)的复杂度方法来枚举两个串中所有的字...原创 2018-03-09 21:34:32 · 200 阅读 · 0 评论