动态规划—一般动规与递推
slongle_amazing
这个作者很懒,什么都没留下…
展开
-
[BZOJ3594] [Scoi2014]方伯伯的玉米田
[BZOJ3594] [Scoi2014]方伯伯的玉米田题目大意给定长度为nn的一个序列,可以找出kk个区间使这kk个区间的元素同时+1+1,询问最后最长不下降子序列的大小 n≤104,k≤500,ai≤5000n\le10^4,k\le 500,a_i\le5000题解一个结论:找出的区间的右端点一定是nn dp[i,j]=max{dp[k,l]}+1 (0≤k≤i−1,0≤l≤j,原创 2016-04-15 10:53:45 · 1461 阅读 · 0 评论 -
一道计数DP
题目大意你有面值为[1..n][1..n]的硬币任意多个 询问有三个任务 1.凑出面值vv的方案数 2.凑出面值vv且用<=a<=a枚硬币的方案数 3.凑出面值vv且用b<=<=ab<=<=a枚硬币的方案数 对于以上三个询问,选择{1,2}\{1,2\}和{2,1}\{2,1\}来拼出3是同一种方案题解这三问题其实就是一个问题….就是整数拆分嘛 为了不重复,我们每次用的硬币面值都是单调的原创 2016-03-04 14:58:26 · 347 阅读 · 0 评论 -
[BZOJ3174] [Tjoi2013]拯救小矮人
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=3174题目大意一些人身体长aia_i手长bib_i 用其中一些人并让某个人ii在顶上使得a1+a2+⋯+ai+bi>=ha_1+a_2+\cdots +a_i+b_i>=h那么最顶上的人就能出去 询问最大出去的人数题解长得高的人(ai+bi大)_{(a_i+b_i大)}自救的机会更大所以尽量后原创 2016-03-02 14:42:00 · 661 阅读 · 0 评论 -
[BZOJ4300] 绝世好题
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=4300题目大意求a的子序列b,使得b序列满足bibi−1<>0b_ib_{i-1}<>0题解涉及位运算,我们考虑按位来搞 只有1 and 1=1,所以我们按位来算 如果给定aia_i的某一位为1,那么aia_i对上一个这位也为1的有1的贡献 dp[i]表示最后一个数第i位为1的最长子序列长度原创 2016-02-11 13:07:29 · 266 阅读 · 0 评论 -
最大连续长度不超过m的子序列和
题目大意给定长度为n的序列,取出其中长度不超过m的连续一段,求最大题解ans=max{sum[i]−sum[j−1]} (i>=j−1且1<=j−i+1<=m)ans=max\{sum[i]-sum[j-1]\}~~~(i>=j-1且1<=j-i+1<=m) 很明显这是O(N2)O(N^2)的暴力 对于位置i它前面sum[j-1]最小即可,也就是静态查询区间最小(ST表/线段树) 我们优化原创 2015-11-30 17:40:34 · 4201 阅读 · 0 评论 -
[BZOJ1084] [SCOI2005]最大子矩阵
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1084题目大意给定一个矩阵选取其中不相交的t个矩阵使其权值和最大题解m=1或2 m=1时m=1时 dp[i,j]=max{dp[i−1,j],max{dp[k,j−1]+sum[i]−sum[k]}} (0<=k<i)dp[i,j]=max\{dp[i-1,j],max\{dp[k,j-1]原创 2015-12-03 18:57:32 · 324 阅读 · 0 评论 -
Codeforces Good Bye 2015
第二场CF,3题收场T1 New Year and Days传送门http://codeforces.com/contest/611/problem/A题目大意询问2016有多少星期几和几号题解打表?var n:longint; a:string;begin readln(n,a); if a=' of week' then begin case n of 1:writeln(5原创 2016-01-01 12:18:20 · 715 阅读 · 0 评论 -
[CodeVS1748] NOI2005 瑰丽华尔兹
传送门http://codevs.cn/problem/1748/题目大意在一段时间内可以向规定的某一方向移动一格也可以不动,询问最大移动距离题解我们用所在的格子位置作为状态,裸的复杂度为O(N3)O(N^3) 我们发现朝一个方向的转移每次要O(N)O(N),然后显然要转移的位置的dp+距离越大是我们想要的,所以单调队列维护O(1)O(1)的转移 写的好丑…var dp:array[0..20原创 2015-12-29 21:35:56 · 392 阅读 · 0 评论 -
NOIP2015模拟3
var a:string; i,j,k:longint; max:longint; ans:array[1..26]of longint; x:array[0..3000]of longint;begin for j:=1 to 4 do begin readln(a); for i:=1 to length(a) do if (ord(a[i])>64)and原创 2015-09-02 18:51:59 · 439 阅读 · 0 评论 -
[BZOJ1046] [HAOI2007]上升序列
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1046题目大意对于1个数列,求出长度为a的位置字典序最小的LIS题解位置字典序最小,也就是说,只有遇到合法的就是字典序最小 怎么判断合法? 对于一个数它的后面LIS长度大于等于要的,并且比已加入的上一个数大即可 注意,LIS的长度达到a之后就停止var x,y,z:array[0..200原创 2015-09-24 20:37:30 · 431 阅读 · 0 评论 -
最大连续子序列和
我们直接来说最优解法吧预处理sum数组sum[i]为以第i位为结尾的最大连续子段和 很明显sum[i]=max(sum[i−1]+x[i],x[i])sum[i]=max(sum[i-1]+x[i],x[i])处理答案F[i]f[i]=max(f[i−1],sum[i])f[i]=max(f[i-1],sum[i]) 这处的DP状态为以第i位结尾和不以第i位结尾两种原创 2015-09-23 12:37:39 · 380 阅读 · 0 评论 -
CodeVS第二次月赛
传送门http://codevs.cn/problem/4109/ http://codevs.cn/problem/4110/ http://codevs.cn/problem/4111/T1 TTY loves numbers题目大意题解T2 TTY Plants Sunflowers题目大意题解T3 TTY Saves Da’shgua题目大意给出一个序列,进行如下3个操作 1.对于第I原创 2015-08-20 19:30:17 · 747 阅读 · 0 评论 -
[BZOJ3039] 玉蟾宫
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=3039题目大意最大全0子矩阵题解单调栈+DP 注意啊,坑爹的数据里有一组有空格QAQvar l,r,dp,w:array[-1..1005,-1..1005]of longint; t:array[0..1005]of longint; i,j,k:longint; n,m:longin原创 2015-09-26 19:08:08 · 453 阅读 · 0 评论 -
DP泛做
DP泛做[CF455 A] Boredom题目大意给定n个数,每次任选一个数ai,得到ai的得分,同时ai−1和ai+1都消失,无法再被选取,询问最大得分和给定n个数,每次任选一个数a_i,得到a_i的得分,同时a_i-1和a_i+1都消失,无法再被选取,询问最大得分和题解dp[i,1]:[1,i]的数都被处理完,i这个数被选的最大得分和dp[i,1]:[1,i]的数都被处理完,i这个数被选的最大得原创 2016-03-23 19:05:14 · 823 阅读 · 0 评论 -
[BZOJ1233] [Usaco2009Open]干草堆tower
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1233题目大意有n个干草堆排成一行,每堆有个宽度ai,现在要且分成若干段,把每一段的干草拼起来,然后逐段堆砌,越左的段放在下面,且宽度要逐层非严格递减。求层数最多是多少层有 n 个干草堆排成一行,每堆有个宽度 ai,现在要且分成若干段,把每一段的干草拼起来,然后逐段堆砌,越左的段放在下面,且宽度要原创 2016-03-17 19:00:36 · 1183 阅读 · 0 评论 -
20160413模拟
T1,T2太水就不提了T3 科技树(tec)题目大意 给定一个nn行的倒三角,第ii行有n−i+1n-i+1个位置,每个位置有一个价值,获得(i,j)(i,j)的价值需要先获得(i−1,j)和(i−1,j+1)(i-1,j)和(i-1,j+1)的价值,选定mm个位置,询问最大价值和n≤50,m≤500n\le 50,m\le 500题解 当选定一个位置(i,j)(i,j)后,(i−1,j)原创 2016-04-13 16:01:24 · 495 阅读 · 0 评论 -
BestCoder Round #77
T1 xiaoxin juju needs help题目大意给定每个字符出现的个数,询问排列为回文串的个数题解分为奇偶回文串,奇回文串只含一种字符出现奇数次,偶回文串要求所有字符都只出现偶数次 然后含重复字符的排列数Pnn∏Paiai\frac{P_n^n}{\prod P_{a_i}^{a_i}} CODET2 India and China Origins题目大意给定n∗m的图,每个点会在某原创 2016-03-27 15:53:55 · 491 阅读 · 0 评论 -
SDOI2009
[BZOJ1875] [SDOI2009]HH去散步题目大意 给定n(n≤20)n(n\le20)个点,m(m≤60)m(m\le60)条边的无向图(有重边,无自环),要求沿一条边的某一方向走完后不能立即走同一条边的反向,每条边长为1,询问从S到TS到T路径长度为PP的方案数题解 有2∗m2*m条有向边,构造矩阵,若从第i条边的终点可以走第j条边,那么x[i,j]=1x[i,j]=1,这样构原创 2016-04-07 14:13:57 · 692 阅读 · 0 评论 -
[BZOJ2298] [HAOI2011]problem a
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=2298题目大意n个人说自己前面有ai个人,后面有bi个人n个人说自己前面有a_i个人,后面有b_i个人,可能排名相同 询问最少有几个人说谎题解通过每个人说的话,我们可以得到这个人所在的区间,即这段人的排名相同 那么如果两个区间有交集且不吻合,那么一定有一个人说谎 吻合的话,吻合段数大于区间长原创 2016-02-28 23:10:45 · 334 阅读 · 0 评论 -
[BZOJ1044] [HAOI2008]木棍分割
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1044题目大意给定n段木棍,切m刀,使最大长度最小给定n段木棍,切m刀,使最大长度最小 1.询问最大长度1.询问最大长度 2.方案数2.方案数题解第一问二分答案+贪心验证 第二问DP第二问DP dp[i,j]:表示前i段切j刀的方案数dp[i,j]:表示前i段切j刀的方案数 显然dp[i原创 2016-02-26 17:43:54 · 575 阅读 · 0 评论 -
一道DP
题目大意给定n个物品,和每个物品的价格,每个物品最多拿1个,要求每次拿完后剩余的钱数不够剩余的物品,询问m元的方案数题解对n个物品按价格由高到低排序对n个物品按价格由高到低排序 设dp[i,j]:取完前i个物品剩j元钱的方案数设dp[i,j]:取完前i个物品剩j元钱的方案数 dp[0,m]=1dp[0,m]=1 dp[i,j]=dp[i−1,j]+dp[i,j+x[i]]dp[i,j]=dp[原创 2016-04-05 18:17:09 · 401 阅读 · 0 评论 -
20160225模拟
T1const maxn=200005;var x,y,z,next:array[-2*maxn..2*maxn]of longint; seg:array[0..4*maxn,1..4]of longint; i,j,k:longint; n,m,t1,t2,ans:longint;function max(a,b:longint):longint;b原创 2016-02-26 08:47:31 · 267 阅读 · 0 评论 -
[BZOJ2431] [HAOI2009]逆序对数列
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=2431题目大意给定n,mn,m询问由11~nn构成的逆序对数为m的方案数题解dp[i,j]:dp[i,j]:由11~ii组成含jj个逆序对数的方案数 dp[i,j]=∑jmax(0,j−i+1)dp[i−1,j−k]dp[i,j]=\sum_{max(0,j-i+1)}^jdp[i-1,j-k]原创 2016-02-24 18:00:58 · 719 阅读 · 0 评论 -
20160221模拟
T1const maxn=300005; mmod=1000000007;var dp:array[0..1,0..maxn]of longint; f:array[0..maxn]of longint; i,j,k:Longint; n,m,t,s,a:longint;begin readln(n,m,t); s:=0; for原创 2016-02-24 07:56:11 · 357 阅读 · 0 评论 -
[BZOJ2017] [Usaco2009 Nov]硬币游戏
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=2017题目大意第一个人最开始拿一枚/两枚硬币,后面的人拿的硬币个数为[1..2∗上一个人拿的]第一个人最开始拿一枚/两枚硬币,后面的人拿的硬币个数为[1..2*上一个人拿的] 两个人都希望拿走最多钱数,询问第一个人最多拿多少两个人都希望拿走最多钱数,询问第一个人最多拿多少题解sum[i]:后缀和原创 2016-03-21 10:30:03 · 1032 阅读 · 0 评论 -
[BZOJ1042] [HAOI2008]硬币购物
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1042题目大意硬币购物一共有4种硬币。面值分别为c1,c2,c3,c4。某人去商店买东西,去了tot次。每次带di枚ci硬币,买si的价值的东西。请问每次有多少种付款方法。题解容斥原理 ans=全部方案-不合法方案 全部方案就是指不考虑带的硬币数量的限制 这个背包一下就好了 不合法的状态就原创 2016-03-18 21:37:50 · 517 阅读 · 0 评论 -
[BZOJ4247] 挂饰
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=4247题目大意给定nn个物品,每个物品都消耗1体积,但会增加aia_i的空间和bib_i的收益,初始有1体积的空间,求最大收益题解dp[i,j]=max{dp[i−1,j],dp[i−1,j−a[i]+1]+b[i]}dp[i,j]=max\{dp[i-1,j],dp[i-1,j-a[i]+1]+原创 2016-02-19 22:13:28 · 342 阅读 · 0 评论 -
[BZOJ1642] [Usaco2007 Nov]Milking Time 挤奶时间
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1642题目大意给定m个挤奶时间段,及产量,每次挤完要休息固定r分钟,n分钟内最大产量题解dp[i]表示前i个任务最大产量 dp[i]=w[i] 赋初值 dp[i]=max(dp[i],dp[j]+w[i]) {第j个任务结束时间+r<=第i个任务开始时间} 为了这个转移,我们要按照开始时间排原创 2015-09-26 10:34:06 · 469 阅读 · 0 评论 -
NOIP2015模拟1
传送门http://218.62.22.209:8080/problem.php?id=3175 http://218.62.22.209:8080/problem.php?id=3176 http://218.62.22.209:8080/problem.php?id=3177T1 相关月题目大意给出年份和两个月份,判断这两个月的第一天是否都是星期I,题解就是判断I,J两个月份之间有多少天如原创 2015-08-28 14:54:51 · 1233 阅读 · 0 评论 -
[Tyvj 2476]贝茜的晨练计划
贝茜的晨练计划时间限制: 1 Sec 内存限制: 128 MB题目描述奶牛们打算通过锻炼来培养自己的运动细胞,作为其中的一员,贝茜选择的运动方式是每天进行N(1 <= N <= 10,000)分钟的晨跑。在每分钟的开始,贝茜会选择下一分钟是用来跑步还是休息。贝茜的体力限制了她跑步的距离。更具体地,如果贝茜选择在第i分钟内跑步,她可以在这一分钟内跑D_i(1 <= D_i <= 1,000)米,并且原创 2015-07-02 19:07:17 · 561 阅读 · 0 评论 -
[Tyvj 1124]花店橱窗布置
花店橱窗布置时间限制: 1 Sec 内存限制: 128 MB题目描述假设你想以最美观的方式布置花店的橱窗。你有F束花,每束花的品种都不一样,同时,你至少有同样数量的花瓶,被按顺序摆成一行。花瓶的位置是固定的,并从左至右,从1至V顺序编号,V是花瓶的数目,编号为1的花瓶在最左边,编号为V的花瓶在最右边。花束则可以移动,并且每束花用1至F的整数唯一标识。标识花束的整数决定了花束在花瓶中排列的顺序,即如原创 2015-07-01 17:54:05 · 843 阅读 · 0 评论 -
[Code VS 1773]创新吃鱼法
创新吃鱼法题目描述 Description回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*)。她发现,把大池子视为01矩阵(0表示对应位置无鱼,1表示对应位置有鱼)有助于决定吃鱼策略。在代表池子的01矩阵中,有很多的正方形子矩阵,如果某个正方形子矩阵的某条对角线上都有鱼,且此正方形子矩阵的其他地方无鱼,猫猫就可以从原创 2015-06-30 19:44:35 · 481 阅读 · 0 评论 -
[DP][NOIP2004] 合唱队形
NOIP2004 合唱队形时间限制: 1 Sec 内存限制: 128 MB题目描述N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,则他们的身高满足T1 < T2 < … < Ti , Ti > Ti+1 > … > TK (1 <=原创 2015-06-07 12:01:33 · 567 阅读 · 0 评论 -
[Tyvj 2199]多米诺骨牌
题目描述有一种多米诺骨牌是平面的,其正面被分成上、下两个部分,每一部分的表面或者为空,或者被标上1至6个点。现在有一行多米诺骨牌排列在桌面上,如下图: 顶行(上行)骨牌的点数之和为6+1+1+1=9;底行(下行)骨牌的点数之和为1+5+3+2=11。顶行和底行的差值是2,这个差值是上、下两行点数之和的差的绝对值。每个多米诺骨牌都可以上下翻转倒置交换,即上部变为下部,下部变为上部。 现在的任务原创 2015-06-27 20:29:52 · 1576 阅读 · 0 评论 -
[DP/构造]最大全0子阵
最大全0子阵时间限制: 1 Sec 内存限制: 128 MB题目描述在一个0,1方阵中找出其中最大的全0子矩阵,所谓最大是指0的个数最多。输入第一行为整数N,其中1<=N<=2000,为方阵的大小,紧接着N行每行均有N个0或1,相邻两数间严格用一个空格隔开。输出仅一行包含一个整数表示要求的最大的全零子矩阵中零的个数。样例输入5 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1原创 2015-06-06 15:32:07 · 451 阅读 · 0 评论 -
[DP]LIS+LCS+最大连续子段和
最长上升子序列O(N^2)for i:=1 to n do dp[i]:=1;for i:=1 to n do for j:=i-1 downto 1 do if x[i]>x[j] then dp[i]:=max(dp[i],dp[j]+1);ans:=-1;for i:=1 to n do ans:=max(ans,dp[i]);O(NlogN)原创 2015-06-07 11:58:14 · 501 阅读 · 0 评论 -
[DP][RQNOJ 3822]选择题
描述众所周知,如果一个函数在区间内可导,他必定连续。所以他想连续的图选择题,即对于第i个选择题,他只能涂与i-1相同的答案或者是i-1道选择题上一个活下一个选择题(第i-1道题涂了A,第i道只能涂A,B;第i-1道题涂了B,第i道只能涂A,B,C;第i-1道题涂了C,第i道只能涂B,C,D;第i-1道题涂了D,第i道只能涂C,D)。他已经知道了选择题答案,求他能获得的最大分数。注意每道题都一个不同的原创 2015-06-17 19:57:53 · 422 阅读 · 0 评论 -
[DP]尼克的任务
尼克的任务时间限制: 1 Sec 内存限制: 128 MB题目描述尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成。 尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束。当尼克到达单位后他就开始干活。如果在同一时刻有多个任务需要完成,尼克可以任选其中的一个来做,而其余的则由他的同事完成,原创 2015-06-12 19:07:00 · 630 阅读 · 0 评论 -
[DP] 公路乘车
var dp:array[0..100]of longint; i,j:longint; x:array[0..10]of longint; n:longint;function min(a,b:longint):longint;begin if a>b then exit(b) else exit(a);end;begin for i:=1 to 10 do read(x原创 2015-06-12 19:57:12 · 557 阅读 · 0 评论 -
[DP]三角形牧场
三角形牧场时间限制: 1 Sec 内存限制: 128 MB题目描述和所有人一样,奶牛喜欢变化。它们正在设想新造型的牧场。奶牛建筑师Hei想建造围有漂亮白色栅栏的三角形牧场。她拥有N(3≤N≤40)块木板,每块的长度Li(1≤Li≤40)都是整数,她想用所有的木板围成一个三角形使得牧场面积最大。 请帮助Hei小姐构造这样的牧场,并计算出这个最大牧场的面积。输入第1行:一个整数N 第2.原创 2015-06-18 21:44:47 · 486 阅读 · 0 评论