
一般dp
文章平均质量分 59
olahiuj
我的女朋友不抽烟不喝酒不傲娇不化妆不存在
展开
-
hdu 6578 Blank dp
题意n个格子排成一行,每个格子可以涂四种颜色。给m个形如(l,r,x)的限制,表示l到r格子内恰好有x种颜色问满足所有限制的涂色方法有多少种n<=100,m<=100做法dp,设f[i,j,k,l]表示四种颜色分别在i、j、k、l出现了最后一次,由于四种颜色调换顺序其实是一样的所以我们可以钦定i<=j<=k<=l向后转移的时候判断当前状态是否满足限制即可,注意滚动和清空数组的问题代码#include <stdio.h>#include &l原创 2020-09-21 19:48:35 · 456 阅读 · 0 评论 -
拦截导弹_codevs1044_最小路径覆盖+DP+水
题目描述Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入描述Input Description输入导弹依次飞来的高度(原创 2016-06-19 12:16:13 · 616 阅读 · 0 评论 -
Crazy Thairs_poj3378_DP+离散+高精度+树状数组
DescriptionThese days, Sempr is crazed on one problemnamed Crazy Thair. Given N (1 ≤ N ≤ 50000)numbers, which are no more than 109,Crazy Thair is a group of 5 numbers {i, j, k, l, m} satisfying:1原创 2016-05-26 21:19:04 · 645 阅读 · 0 评论 -
乌龟棋_CODEVS1068_DP
题目描述 Description小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数)。棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。…… 1 2 3 4 5 ……N 乌龟棋中M张爬行卡片,分成4种不同的类型(M张卡片中不一定包含所有4种类型的卡片,见样例),每种类型的卡片上分别标有1、2、3、原创 2016-06-01 21:23:03 · 383 阅读 · 0 评论 -
打鼹鼠_SSL1506_DP_水
Description鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的。 根据这个特点阿Q编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气。你可以控制一个机器人来打鼹鼠,如果i时刻鼹鼠在某个网格中出现,而机器人也处于同一网格的话,那么这个鼹鼠就会被机器人打死。而机器人每一时刻只能够移动一格或停留在原地不动。机器原创 2016-06-03 20:09:30 · 567 阅读 · 0 评论 -
沼泽鳄鱼_SSL2511_矩阵乘法
沼泽鳄鱼【题目描述】潘塔纳尔沼泽地号称世界上最大的一块湿地,它地位于巴西中部马托格罗索州的南部地区。每当雨季来临,这里碧波荡漾、生机盎然,引来不少游客。为了让游玩更有情趣,人们在池塘的中央建设了几座石墩和石桥,每座石桥连接着两座石墩,且每两座石墩之间至多只有一座石桥。这个景点造好之后一直没敢对外开放,原因是池塘里有不少危险的食人鱼(不是说鳄鱼咩~_~)。豆豆先生酷爱冒险,他一听说这原创 2016-04-05 16:51:07 · 492 阅读 · 0 评论 -
苹果_ssl1637_dp
Description 农场的夏季是收获的好季节。在Farmer John的农场,他们用一种特别的方式来收苹果:Bessie摇苹果树,苹果落下,然后Farmer John尽力接到尽可能多的苹果。 作为一个有经验的农夫, Farmer John将这个过程坐标化。他清楚地知道什么时候(1<=t<=1,000,000)什么位置(用二维坐标表示,-1000<=x,y<=1000)会有苹果落下。他只转载 2016-06-26 21:27:32 · 721 阅读 · 0 评论 -
Mobile Service_纪中1327_dp
Description 一个公司有三个移动服务员。如果某个地方有一个请求,某个员工必须赶到那个地方去(那个地方没有其他员工),某一时刻只有一个员工能移动。被请求后,他才能移动,不允许在同样的位置出现两个员工。从p到q移动一个员工,需要花费c(p,q)。这个函数没有必要对称,但是c(p,p)=0。公司必须满足所有的请求。目标是最小化公司花费。Input 第一行有两个整数L,N(3<=L<=200,转载 2016-07-07 17:37:22 · 473 阅读 · 0 评论 -
取数游戏_纪中1308_dp
Description Alice想让Bob陪他去看《唐山大地震》,但由于Bob是个很感性的人,怕流泪不想去,但又不好意思以这个作为拒绝的理由,便提出玩一个游戏。 N个正整数围成一圈,规则如下: •两个玩家轮流取数; •最开始先手的玩家可以取任意一个数x; •从第二步开始当前玩家只能取x(上一玩家刚刚取的数)左右两边相邻的数; •直到取完所有的数,游戏结束; •原创 2016-07-13 21:51:46 · 872 阅读 · 0 评论 -
石子归并_codevs1048_dp
题目描述 Description有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1]。问安排怎样的合并顺序,能够使得总合并代价达到最小。输入描述 Input Description第一行一个整数n(n<=100)第二行n个整数w1,w2…wn (wi <= 100)输出描述 Output Description一个原创 2016-07-05 17:24:27 · 492 阅读 · 0 评论 -
Hie with the Pie_poj3311
DescriptionThe Pizazz Pizzeria prides itself indelivering pizzas to its customers as fast as possible. Unfortunately, due tocutbacks, they can afford to hire only one driver to do the deliveries. He原创 2016-05-04 17:35:05 · 439 阅读 · 0 评论 -
线段覆盖_codevs3027_dp
题目描述 Description数轴上有n条线段,线段的两端都是整数坐标,坐标范围在0~1000000,每条线段有一个价值,请从n条线段中挑出若干条线段,使得这些线段两两不覆盖(端点可以重合)且线段价值之和最大。n<=1000输入描述 Input Description第一行一个整数n,表示有多少条线段。接下来n行每行三个整数, ai bi ci,分别代表第i条线段的左端点ai,右端点bi(保证左端原创 2016-07-19 10:09:30 · 486 阅读 · 0 评论 -
环中环_纪中1347_线段树+dp
Description 被认为天才的小头遇到麻烦了!!这天数学课老师给出了一道难题,而小头居然没能在3秒内解决,可见此题难度之大。 问题是这样的:n个整数围成一个环,老师要求选出其中的若干数,使得选中的数所组成的环中,两个相邻数的差的绝对值不等于1。在满足这个前提下,问最多能取多少个数。Input 第一行一个正整数n,表示有n个数 第二行n个整数,a1、a2……an 按顺时针方向围成原创 2016-08-16 19:46:37 · 684 阅读 · 0 评论 -
对布满灰尘的西洋棋宣告将军_纪中2047_dp
题目描述维多利加:这里的确有许多书,但是…… 这里没有你。布洛瓦侯爵想利用维多利加来占卜二战的局势。侯爵只给了她一盘西洋棋和 许多书,便将她关在了王宫的地牢。 西洋棋盘可以看成一个 N*M 的网格。西洋棋可以摆放在任何一个格子里, 而不是网格线的交叉点上。 维多利加将一个棋子放在了左上角的格子上。她试着移动这个棋子,棋子只 会向右或者向下移动。 每个原创 2016-08-17 16:27:46 · 831 阅读 · 0 评论 -
Score Inflation_usaco3.1.2_dp
DESCRIPTIONThe more points students score in our contests, the happier we here at the USACO are. We try to design our contests so that people can score as many points as possible, and would like your a原创 2016-08-28 23:08:09 · 507 阅读 · 0 评论 -
密码盘_纪中3067_dp
Description如图是某人设想中的N×N的密码盘,用以显示自己强大的智商以及计算能力。图中每列上面有一个0或1的值,每行左边也有一个0或1的值。密码盘中有最多N*N个按钮,每个按钮有一个数值。按钮按下去之后,你会获得按钮上的分数,然后对应行和对应列的值会改变。例如:假设按钮(1,4)的数值为k,按下它,你获得k分,然后第一行的1会变成0,第四列的0会变成1。你的任务是,使每列上面的值和每行左边原创 2016-08-18 14:06:37 · 590 阅读 · 0 评论 -
Subset Sums_usaco2.2.2_dp
题目描述 Description对于从1到N (1 <= N <= 39) 的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的。举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,每个子集合的所有数字和是相等的:{3} 和 {1,2} 这是唯一一种分法(交换集合位置被认为是同一种划分方案,因此不会增加划分方案总数) 如果N=7,有四种方法能划分集合{1,2,3,4,5,6,原创 2016-08-18 21:32:33 · 436 阅读 · 0 评论 -
上学_ssl2404_dp
没有文字,放图 题解显而易见的dp f[i][j]f[i][j]表示时刻ii走到jj点的最小花费,那么显而易见的 对于一张从ii通往vv,xx时刻出发yy时刻到达花费为cost的车票有f[v][y]=min(f[i][j]+cost,f[v][y])f[v][y]=min(f[i][j]+cost,f[v][y]) 不走,则f[i+1][j]=min(f[i][j],f[i+1][j])原创 2016-09-09 20:07:54 · 292 阅读 · 0 评论 -
区间_纪中1382_dp
Description Alice收到一些很特别的生日礼物:区间。即使很无聊,Alice还是能想出关于区间的很多游戏,其中一个是,Alice从中选出最长的不同区间的序列,其中满足每个区间必须在礼物中,另序列中每个区间必须包含下一个区间。 编程计算最长序列的长度。Input 输入文件第一行包含一个整数N(1<=N<=100000),表示区间的个数。 接下来N行,每行两个整数A和B描述一原创 2016-07-13 16:02:07 · 530 阅读 · 0 评论 -
Stamps_usaco3.1_dp
题目描述 Description已知一个 N 枚邮票的面值集合(如,{1 分,3 分})和一个上限 K —— 表示信封上能够贴 K 张邮票。计算从 1 到 M 的最大连续可贴出的邮资。例如,假设有 1 分和 3 分的邮票;你最多可以贴 5 张邮票。很容易贴出 1 到 5 分的邮资(用 1 分邮票贴就行了),接下来的邮资也不难:6 = 3 + 3 7 = 3 + 3 + 1 8 = 3 + 3原创 2016-08-29 17:35:29 · 564 阅读 · 0 评论 -
Longest Prefix_usaco 2.3.1_dp
题目描述 Description在生物学中,一些生物的结构是用包含其要素的大写字母序列来表示的。生物学家对于把长的序列分解成较短的序列(即元素)很感兴趣。如果一个集合 P 中的元素可以通过串联(元素可以重复使用,相当于 Pascal 中的 “+” 运算符)组成一个序列 S ,那么我们认为序列 S 可以分解为 P 中的元素。元素不一定要全部出现(如下例中BBC就没有出现)。举个例子,序列 ABABAC原创 2016-08-21 16:03:32 · 596 阅读 · 0 评论 -
Cow Pedigrees_usaco 2.3.2_递推?dp?
题目描述 Description农民约翰准备购买一群新奶牛。 在这个新的奶牛群中, 每一个母亲奶牛都生两个小奶牛。这些奶牛间的关系可以用二叉树来表示。这些二叉树总共有N个节点(3 <= N < 200)。这些二叉树有如下性质:每一个节点的度是0或2。度是这个节点的孩子的数目。树的高度等于K(1 < K < 100)。高度是从根到最远的那个叶子所需要经过的结点数; 叶子是指没有孩子的节点。有多少不同的原创 2016-08-21 22:36:55 · 671 阅读 · 0 评论 -
Money Systems_usaco2.3.4_dp
题目描述 Description母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统。由于它们特殊的思考方式,它们对货币的数值感到好奇。传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的。母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。举例来说, 使用一个货币系统 {1,2,5,10,…}产生 18单位面值的一些可能的方法是:18x原创 2016-08-22 18:39:56 · 405 阅读 · 0 评论 -
方格取数_纪中_dp
Description 给定一个N*M的矩阵,记录左上角为(1,1),右下角为(N,M),现在从(1,1)开始取数,每次只能向下或向右移动一个单位,最终到达(N,M),我们把路径上所有的数相乘,记为C。使C的结果最大已经不能满足我们了,现在我们想让C末尾的零最少。 Ps.11000末尾有3个零,100000100末尾有2个零。 Input 输入文件matrix.in的第一行包含两个正原创 2016-08-11 14:53:31 · 467 阅读 · 0 评论 -
A Game_usaco3.3_DP
Description 有如下一个双人游戏:N(2 <= N <= 100)个正整数的序列放在一个游戏平台上,两人轮流从序列的两端取数,取数后该数字被去掉并累加到本玩家的得分中,当数取尽时,游戏结束。以最终得分多者为胜。 编一个执行最优策略的程序,最优策略就是使自己能得到在当前情况下最大的可能的总分的策略。你的程序要始终为第二位玩家执行最优策略。 Input第一行: 正整数N, 表示序列中原创 2016-09-13 20:56:56 · 569 阅读 · 0 评论 -
采药2_纪中2540_dp
Description 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”原创 2016-08-11 19:09:50 · 400 阅读 · 0 评论 -
跳舞_纪中2545_dp
Description 小明今天得到一个跳舞毯游戏程序Dance。游戏每次连续出N 个移动的“箭头”,箭头依次标号为1 到N,并且的相应的分数S[1..N]。如果你能“踏中”第i 号箭头,你将获得相应的分数S[i];否则将被扣除相应的分数。 另外,游戏还有一个累计奖励机制:如果踏准次数累计达到T,并且是在踏中第i个箭头达到的,则将得到B[i]的奖励分数,累计也将清零,重新开始。 例如:原创 2016-08-12 14:21:31 · 401 阅读 · 0 评论 -
删数_纪中3097_dp
Description小明现在有 n 个不同的正整数 X1 , X2 , … Xn 排成一行。 小明每次可以将左边或右边删掉连续的若干个数(只能从两边删数 ) 。 每次删数可以得到一个值,若删除从 i 到 j 的数( iInput第一行一个整数 n 。 第二行 n 个整数,表示 X 。Output输出仅一行一个整数,表示能得到的最大价值。Hint对于 30% 的数据满足 1 ≤ n ≤ 100原创 2016-08-12 16:45:41 · 544 阅读 · 0 评论 -
竞赛真理_rqnoj160_dfs||dp
题目描述TENSHI在经历了无数次学科竞赛的失败以后,得到了一个真理:做一题就要对一题!但是要完全正确地做对一题是要花很多时间(包括调试时间),而竞赛的时间有限。所以开始做题之前最好先认真审题,估计一下每一题如果要完全正确地做出来所需要的时间,然后选择一些有把握的题目先做。 当然,如果做完了预先选择的题目之后还有时间,但是这些时间又不足以完全解决一道题目,应该把其他的题目用贪心之类的算法随便做做,争原创 2016-09-04 15:33:56 · 850 阅读 · 0 评论 -
最大值_纪中1857_dp
Description 找到一个数组的最大值的一种方法是从数组开头从前到后对数组进行扫描,令max=a0,如果a[i]>max,就更新max,这样就可以在O(N)的时间里找到一个数组的最大值。 这个问题是相当简单的,但是想到了另一个问题,如果一个包含N个元素的数组a里面的元素的值是在1…K之间的整数,存在多少个不同的数组a,进行了如上扫描之后,max恰好进行了P次更新? 下面是N =原创 2016-08-13 16:54:38 · 520 阅读 · 0 评论 -
改造二叉树_纪中3894_dfs+LIS
Description小Y在学树论时看到了有关二叉树的介绍:在计算机科学中,二叉树是每个结点最多有两个子结点的有序树。通常子结点被称作“左孩子”和“右孩子”。二叉树被用作二叉搜索树和二叉堆。随后他又和他人讨论起了二叉搜索树。 什么是二叉搜索树呢?二叉搜索树首先是一棵二叉树。设key[p]表示结点p上的数值。对于其中的每个结点p,若其存在左孩子lch,则key[p]>key[lch];若其存在右孩子原创 2016-09-17 11:52:53 · 861 阅读 · 0 评论 -
perform巡回演出_ssl1649_dp
Description Flute市的Phlharmoniker乐团2000年准备到Harp市做一次大型演出,本着普及古典音乐的目的,乐团指挥L.Y.M准备在到达Harp市之前先在周围一些小城市作一段时间的巡回演出,此后的几天里,音乐家们将每天搭乘一个航班从一个城市飞到另一个城市,最后才到达目的地Harp市(乐团可多次在同一城市演出). 由于航线的费用和班次每天都在变,城市和城市之间都有一原创 2016-09-17 15:35:45 · 590 阅读 · 0 评论 -
雾雨魔理沙_纪中2555_dp
Description 在幻想乡,雾雨魔理沙是住在魔法之森普通的黑魔法少女。话说最近魔理沙从香霖堂拿到了升级过后的的迷你八卦炉,她迫不及待地希望试试八卦炉的威力。在一个二维平面上有许多毛玉(一种飞行生物,可以视为点),每个毛玉具有两个属性,分值value和倍率mul。八卦炉发射出的魔法炮是一条无限长的直线形区域,可以视为两条倾斜角为α的平行线之间的区域,平行线之间的距离可以为任意值,如下图所示:原创 2016-08-14 21:47:11 · 592 阅读 · 0 评论 -
2003年分区联赛普级组之二 数字游戏_dp
Description 丁丁最近沉迷于一个数字游戏之中。这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易。游戏是这样的,在你面前有一圈整数(一共n个),你要按顺序将其分为m个部分,各部分内的数字相加,相加所得的m个结果对10取模后再相乘,最终得到一个数k。游戏的要求是使你所得的k最大或者最小。 例如,对于下面这圈数字(n=4,m=2):原创 2016-09-24 07:58:50 · 321 阅读 · 0 评论 -
又上锁妖塔_rqnoj82_dp
Description小D在X星买完了想要的东西,在飞往下一个目的地的途中,正无聊的他转头看了看身边的小A,发现小A正在玩<仙剑>,可是小A很奇怪,他一直在锁妖塔的周围转来转去,可是就是不进去,于是小D问他:”你在干什么?怎么不上去?”小A说:”我在想怎么从锁妖塔外面爬上去”(倒…) 锁妖塔的建造很特别,塔总共有n层,但是高度却不相同,这造成了小A爬过每层的时间也不同.小A会用仙术,每用一次可以让他原创 2016-09-24 15:56:01 · 1120 阅读 · 0 评论 -
Frequent values_poj3368_rmq
DescriptionYou are given a sequence of n integers a1 , a2 , … , an in non-decreasing order. In addition to that, you are given several queries consisting of indices i and j (1 ≤ i ≤ j ≤ n). For each qu原创 2016-09-24 16:43:43 · 419 阅读 · 0 评论 -
Home On The Range_usaco3.3_dp
题目描述 Description农民约翰在一片边长是N (2 <= N <= 250)英里的正方形牧场上放牧他的奶牛。(因为一些原因,他的奶牛只在正方形的牧场上吃草。)遗憾的是,他的奶牛已经毁坏一些土地。( 一些1平方英里的正方形)农民约翰需要统计那些可以放牧奶牛的正方形牧场(至少是2x2的,在这些较大的正方形中没有一个点是被破坏的,也就是说,所有的点都是“1”)。你的工作要在被供应的数据组里面统计原创 2016-09-15 17:05:10 · 485 阅读 · 0 评论 -
方案数_ssl1792_dp
Description小志的数学总是不及格,小强的爸爸为鼓励他学习,跟他打了个赌:如果他能答对一个问题,就给他一个糖果。这个问题是,有N张有数字的牌,牌上的数字分别是1,…,N,问从中选出M张牌,总和刚好是S的方案数有多少。小志不会回答,但又很想得到糖果,因此请求你的帮助。你能帮他拿到糖果吗?Input输入只有一行,包含三个整数,分别是总的牌数N,要选择的牌数M以及总和S。Output输出只有一行,原创 2016-11-05 16:53:22 · 455 阅读 · 0 评论 -
Big Barn_usaco5.3_dp
Description 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚。他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方。我们假定,他的农场划分成 N x N 的方格。输入数据中包括有树的方格的列表。你的任务是计算并输出,在他的农场中,不需要砍树却能够修建的最大正方形牛棚。牛棚的边必须和水平轴或者垂直轴平行。 格式 EXAMPLE 考虑下面的方格,它表示农夫约原创 2016-09-18 16:54:27 · 421 阅读 · 0 评论 -
旅行_纪中1281_dp
Description 今天又是个神圣的日子,因为LHX教主又要进行一段长途旅行。但是教主毕竟是教主,他喜欢走自己的路,让别人目瞪口呆。为什么呢,因为这条路线高低不平,而且是相当的严重。 但是教主有自己的办法,他会魔法。 这段路可以用一个长度为n的序列A[i]来表示,A[i]表示了第i这段路的高度。毕竟教主即使会使用魔法他还是个人,教主如果想穿越这条路线,他必须从第1段路开始走,走原创 2016-10-06 14:48:05 · 758 阅读 · 0 评论