动态规划
文章平均质量分 55
sleepyNick
ZJcx蒟蒻OIer
展开
-
[LGOJ2340]奶牛会展——[简单DP]
【题意分析】把智商看成费用,情商看成价值,就是一道水背包至于数组下标会有负数,只要都加上一个值使下标为正即可最后的答案要遍历所有状态Code:#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cctype>...原创 2019-11-15 11:06:35 · 204 阅读 · 0 评论 -
[NOIpPJ2009]道路游戏——[简单DP]
【题意分析】暴力dp,dp[i]表示第i分钟的最大收益那么枚举时间、上次从哪个工厂走来以及步数,直接dp:dp[i]=max(dp[i],dp[i−k]+totpathvalue−cost[startpoint])dp[i] = \max(dp[i],dp[i-k]+totpathvalue-cost[startpoint])dp[i]=max(dp[i],dp[i−k]+totpat...原创 2019-11-15 09:32:49 · 276 阅读 · 0 评论 -
[LGOJ3694]邦邦的大合唱站队——[状压DP]
【题意分析】属于比较简单的状压dp,数据范围20也提示得非常明显。我们压排好第iii种偶像的状态,0没排,1排直接上:dp[i]表示iii这个状态最少需要移动几次注意到你要排好,实际上不用纠结人从哪里排起,因为你选中的偶像排好,其他人是可以随便插入的,因此我们假定最后排好的状态偶像们是从前往后站的,没有排好的一律放在最后面。那么我们就对于这个状态枚举偶像,假定第j种偶像排在[L,R]...原创 2019-11-14 20:44:21 · 153 阅读 · 0 评论 -
[NOIpTG2018]货币系统——[简单DP]
【题意分析】显然是一个可行性dp,dp[i]就表示当前状态可不可达对于输入,给你的aia_iai一次一次往上筛就好了,复杂度正确Code:#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cctype>...原创 2019-11-14 19:52:18 · 202 阅读 · 0 评论 -
[NOIpTG2014]飞扬的小鸟——[计数DP]
【题意分析】考虑dp,dp[i][j]直接表示到坐标为(i,j)(i,j)(i,j)的点有几种方案,不可到达就是INFINFINFlow[i]和top[i]就是在这个位置最低在low[i]位置,最高在top[i]位置可以通过,记得赋初值up[i]和down[i]分别是在这个位置可以上升/下降多少高度那么当前状态可能是从下面升上来的,也有可能是从上面掉下来的,这样就有dp[i][j]=...原创 2019-11-13 20:51:12 · 215 阅读 · 0 评论 -
[NOIpTG2015]子串——[计数DP]
【题意分析】这种dp题也就是按照套路来,先设一个四维的状态:dp[i][j][k][l]就是第一个串前i个,第二个串前j个,取了k段,第二个串当前位置取不取(0不取1取)的方案总数计数dp嘛,分类讨论:如果枚举的位置两个字符相同,那么就表明可以取或不取dpi,j,k,0=dpi−1,j,k,0+dpi−1,j,k,1dp_{i,j,k,0}=dp_{i-1,j,k,0}+dp_{i-1,...原创 2019-11-11 20:41:07 · 151 阅读 · 0 评论 -
[NOIpTG2005]过河——[简单DP+路径压缩]
【题意分析】naive的dp方程式(dp[i]就是答案):dpi=mins≤j≤t,i≥j{dpi−j+isstonei}dp_i=\min_{s\leq j\leq t,i\geq j}\{dp_{i-j}+isstone_i\}dpi=s≤j≤t,i≥jmin{dpi−j+isstonei}然后L最大有1e9你mle加tle了很明显中间有大量的无用状态,根据小凯的疑惑那道题...原创 2019-11-11 12:43:28 · 153 阅读 · 0 评论 -
[APIO2014]序列分割——[斜率优化DP]
【题意分析】题意就是把一个序列切k刀,每次的得分为序列两边元素之和的乘积下证答案与切割的顺序无关,只与切割的位置有关。//这是一个丑陋的图假设你切在红色的两个位置,那么就有先切ab处再切bc处或者先切bc处再切ab处两种切法。ans1=a(b+c)+bc=ab+ac+bcans1=a(b+c)+bc=ab+ac+bcans1=a(b+c)+bc=ab+ac+bcans2=(a+b)...原创 2019-11-03 20:11:19 · 128 阅读 · 0 评论 -
10.31模拟赛T2
问题就是把整个图分为两个完全图首先建一个原图的补图,然后可以发现这个补图有许多独立的连通块。对于每个连通块,进行黑白染色,就可以得到一些性质(针对补图):问题转化为将补图分为两组,每组中在补图中互不连边(在原图中就是两两连边,完全图)同一个连通块里面,两种颜色的点肯定分属于两组。加入何组与颜色无关,只要保证一个连通块中的点没有在一组里面就好了用一个可行性dp解决这个问题,dp[i...原创 2019-11-01 20:45:11 · 135 阅读 · 0 评论 -
[CEOI2004]锯木厂选址——[斜率优化DP]
【题意分析】首先这道题是有sa做法的,可是我不想写我们先对于数据做一些处理:dis[i]表示距离的后缀和(这个点到山下锯木厂的距离),sum[i]表示质量的前缀和,cnt为所有木材全部运输到山下那个锯木厂的价格(即山上不建任何锯木厂)那么有ans=min1≤j<i{cnt−dis[j]∗sum[j]−dis[i]∗(sum[i]−sum[j])}ans=\min_{1\leq j...原创 2019-10-31 19:28:12 · 181 阅读 · 0 评论 -
[USACO08MAR]土地征用Land Acquisition——[斜率优化DP]
【题意分析】首先可以发现一个性质:如果一个矩形长和宽都小于等于另一个,完全可以过滤掉这个矩形。怎么实现?排个序就好了然后我们dp[i]表示前i个矩形的最小费用,那么dpi=min1≤j<i{dpj+wj+1hi}dp_i=\min _{1\leq j<i}\{ dp_j+w_{j+1}h_i\}dpi=1≤j<imin{dpj+wj+1hi}斜率优化一下...原创 2019-10-29 19:17:13 · 168 阅读 · 1 评论 -
10.27模拟赛T2
愚蠢的朴素dp比较好写,注意到唯一的瓶颈就在于状态太大,考虑离散不能整除k的因子可以过滤掉,然后把因子放进map里面,reverse_iterator遍历一遍用朴素dp方程dp[i][j]=dp[i−1][j]dp[i][j]=dp[i-1][j]dp[i][j]=dp[i−1][j]dp[i][j]+=dp[i−1][j/u]dp[i][j]+=dp[i-1][j/u]dp[i][j]+...原创 2019-10-28 21:30:20 · 105 阅读 · 0 评论 -
[HNOI2008]玩具装箱TOY——[斜率优化DP]
【题目描述】P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为 1⋯N1\cdots N1⋯N 的 NNN 件玩具,第 iii 件玩具经过压缩后变成一维长度为 CiC_iCi.为了方便整理,P教授要求在一个一维容器中的玩具编号是连续的。同时如果一个一维容器中有多个玩具,那么两件...原创 2019-09-24 20:24:13 · 114 阅读 · 0 评论 -
[APIO2010]特别行动队——[斜率优化DP]
【题目描述】你有一支由 n 名预备役士兵组成的部队,士兵从 1 到 n 编号,要将他们拆分 成若干特别行动队调入战场。出于默契的考虑,同一支特别行动队中队员的编号 应该连续,即为形如(i,i+1,...,i+k)(i, i + 1, ..., i + k)(i,i+1,...,i+k)的序列。 编号为 i 的士兵的初始战斗力为 xi ,一支特别行动队的初始战斗力 x 为队内 士兵初始战斗力之和,...原创 2019-09-22 21:29:17 · 151 阅读 · 0 评论 -
[HAOI2008]硬币购物——[DP+容斥]
【题目描述】硬币购物一共有4种硬币。面值分别为c1,c2,c3,c4。某人去商店买东西,去了tot次。每次带di枚ci硬币,买si的价值的东西。请问每次有多少种付款方法。【输入格式】第一行 c1,c2,c3,c4,tot 下面tot行 d1,d2,d3,d4,s【输出格式】每次的方法数Sample InputSample~~InputSample &nb...原创 2019-07-27 19:57:36 · 155 阅读 · 1 评论 -
[USACO08NOV]奶牛混合起来Mixed Up Cows——[状压DP]
【题目描述】 约翰家有N(n&lt;=16)头奶牛,第i头奶牛的编号是Si,每头奶牛的编号都是唯一的。这些奶牛最近 在闹脾气,为表达不满的情绪,她们在挤奶的时候一定要排成混乱的队伍。在一只混乱的队 伍中,相邻奶牛的编号之差均超过K。比如当K = 1时,1, 3, 5, 2, 6, 4就是一支混乱的队伍, 而1, 3, 6, 5, 2, 4不是,因为6和5只差1。请数一数,有多少种队形是混乱的呢?...原创 2018-08-07 19:21:37 · 185 阅读 · 0 评论 -
[HNOI2004]L语言——[trie+DP]
【题目描述】 标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的。现在你要处理的就是一段没有标点的文章。一段文章T是由若干小写字母构成。一个单词W也是由若干小写字母构成。一个字典D是若干个单词的集合。我们称一段文章T在某个字典D下是可以被理解的,是指如果文章T可以被分成若干部分,且每一个部分都是字典D中的单词。例如字典D中包括单词{‘is’, ‘name’, ‘what’, ‘y...原创 2018-08-08 23:05:54 · 126 阅读 · 0 评论 -
[SCOI2005]互不侵犯——[状压DP]
【题目描述】在N×N(1≤N≤9)(1≤N≤9)(1≤N≤9)的棋盘里面放K(0≤K≤N2)(0≤K≤N^2)(0≤K≤N2)个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。【输入格式】一行,两个数N,K【输出格式】一个数,总方案数Sample InputSample~InputSample&nb...原创 2018-09-23 12:38:19 · 212 阅读 · 0 评论 -
[SCOI2009]windy数——[数位DP]
【题目描述】windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道,在A和B之间,包括A和B,总共有多少个windy数?【输入格式】一行A,B【输出格式】一行,表示[A,B][A,B][A,B]内windy数个数。Sample InputSample~~InputSample I...原创 2019-04-06 00:23:26 · 167 阅读 · 0 评论 -
[CF833B Round#426 Div.1]The Bakery——[线段树+DP]
【原题】Some time ago Slastyona the Sweetmaid decided to open her own bakery! She bought required ingredients and a wonder-oven which can bake several types of cakes, and opened the bakery.Soon the expe...原创 2019-06-05 17:01:40 · 154 阅读 · 0 评论 -
[CF543C Round#302 Div.1]Remembering Strings——[状压DP]
【原题】You have multiset of n strings of the same length, consisting of lowercase English letters. We will say that those strings are easy to remember if for each string there is some position i and som...原创 2019-06-02 16:00:56 · 185 阅读 · 0 评论 -
[CF906C Round#454 Div.1]Party——[状压DP]
【原题】【题目翻译】Arseny喜欢组织派对并邀请他的朋友们参加。然而,不仅朋友来参加他的聚会,还有他朋友的朋友,他朋友的朋友的朋友等等。所以Arseny的有一部分客人可能不了解他。他决定使用以下程序解决此问题。在每一步,他都选择了一位客人A,成对地向A介绍了他的所有朋友。在完成这一步之后,他的任意两个朋友也会互相成为朋友。一直重复这个步骤到所有客人都互相为朋友为止。Arseny不想花太...原创 2019-07-28 22:10:11 · 119 阅读 · 0 评论 -
[CF796E Round#408 Div.2]Exam Cheating——[计数DP]
【原题】【题目翻译】KajKeusaka是个学渣,考试的时候,他一道题也不会做他的左右桌分别是学霸ModestCoder和学霸Dawn_Chase,虽然学霸并不是题题都会做,但他们做了的题一定都对现在KajKeusaka想要作弊,但是为了不被监考员抓住,他最多偷看p次,一次能看连续的k道题给定n和la和lb,分别为题目总数,ModestCoder做出题目数和Dawn_Chase做出题目...原创 2019-07-31 23:05:53 · 262 阅读 · 0 评论 -
[HAOI2010]软件安装——[缩点+树形DP]
【题目描述】现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi。我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件的价值尽可能大(即Vi的和最大)。但是现在有个问题:软件之间存在依赖关系,即软件i只有在安装了软件j(包括软件j的直接或间接依赖)的情况下才能正确工作(软件i依赖软件j)。幸运的是,一个软件最多依赖另外一个软件。如果一个软件不能正...原创 2018-08-10 21:36:46 · 201 阅读 · 0 评论