![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
优化dp
文章平均质量分 64
tomjobs
别慌,慌也没用
展开
-
Codeforces-1487 E. Cheap Dinner(线段树优化DP)
思路:定义dp[i][j]dp[i][j]dp[i][j]代表第iii次用餐中,选到了第jjj个物品能得到的最小价值和。就是每一层维护的dp数组用线段树表示,那么限制就是这一层的每个数与之前一层有一些数不能匹配,那么限制就是这一层的每个数与之前一层有一些数不能匹配。不能匹配的数将数组划分为了很多区间,转移就是你在这些区间中之间取最小值加上当前这个数的权值#include <cstdio>#include <cstring>#include <algorithm&g.原创 2021-02-16 16:03:07 · 419 阅读 · 0 评论 -
LeetCode 887. 鸡蛋掉落(经典问题,DP,二分)
你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N 共有 N 层楼的建筑。每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。你知道存在楼层 F ,满足 0 <= F <= N 任何从高于 F 的楼层落下的鸡蛋都会碎,从 F 楼层或比它低的楼层落下的鸡蛋都不会破。每次移动,你可以取一个鸡蛋(如果你有完整的鸡蛋)并把它从任一楼层 X 扔下(满足 1 <= X <= N)。你的目标是确切地知道 F 的值是多少。无论 F 的初始值如何,你确定 F 的值的最小移动次数是原创 2021-02-08 22:35:03 · 369 阅读 · 0 评论 -
Codeforces1437 E. Make It Increasing(有上下界的LIS)
You are given an array of ???? integers ????1, ????2, …, ????????, and a set ???? of ???? distinct integers from 1 to ????.In one operation, you may choose two integers ???? and ???? (1≤????≤????, ???? can be any integer) and assign ????????:=????. This o原创 2020-10-30 09:27:30 · 201 阅读 · 0 评论 -
F - Fundraising Gym - 101889F(线段树DP)
题意:每个人有3个属性a,b,c。求选择一些人,使得任意两个人,要么a,b严格大于另一个人,要么完全相同。求最大的c值和。思路:有两维状态的限制,类似于偏序。定义dp[i][j]dp[i][j]dp[i][j]代表考虑了前iii个人,b的值为jjj时的最大ccc值和。把a,b值完全相同的人先合并。我们一维一维的考虑,先按照第一维度a排序从小到大,第二维度按照b排序从大到小,则从后往前遍历就保证了已经更新过的人bbb大于自己(或者b等于自己,但是他的c值小于自己,所以不会影响到自己)。那么转原创 2020-10-28 11:12:57 · 266 阅读 · 0 评论 -
Ascending Photo Gym - 101623A(DP)
题意:将一段数切成最少的段,使得可以将其重新拼起来序列不减。思路:感觉很难的一道题目,代码参考的wxh博客,思路的话可以参考这个博客。我们先将所有数切开,一共n-1段,这样一定满足可以拼成递增序列。我们再考虑将其中一些部分“接起来”,优化这个结果。首先一开始就相同且相邻的数可以直接拼起来当做一个数,这个可以预处理出来。所以可以拼起来的数就是大小相差为1(离散化过后的大小),且位置相邻。则定义f[i][j]f[i][j]f[i][j]为考虑值小于等于iii的部分,最后一次拼接的位置为(j,j+原创 2020-10-09 20:54:00 · 152 阅读 · 0 评论 -
Codeforces1407 D. Discrete Centrifugal Jumps(单调栈+DP)
There are ???? beautiful skyscrapers in New York, the height of the ????-th one is ℎ????. Today some villains have set on fire first ????−1 of them, and now the only safety building is ????-th skyscraper.Let’s call a jump from ????-th skyscraper to ????-t原创 2020-09-09 08:19:28 · 339 阅读 · 0 评论 -
Codeforces1327 F. AND Segments(DP优化,按位)
You are given three integers ????, ????, ???? and ???? conditions (????1,????1,????1),(????2,????2,????2),…,(????????,????????,????????).Calculate the number of distinct arrays ????, consisting of ???? integers such that:0≤????????<2???? for each 1≤??原创 2020-09-04 15:47:42 · 213 阅读 · 0 评论 -
BZOJ1852. [MexicoOI06]最长不下降序列(线段树+DP)
Description给你N对数A1,B1……An,Bn 。要求你从中找出最多的对,把它们按照一种方式排列,重新标号1,2,…,k。 能满足对于每一对 i < j,都有 Ai > Bj。Input第一行给出一个数字N,N < = 100000 下面N行,分别给出Ai,Bi,其小于10^9Output输出K的极大值Sample Input43 1210 2021 1310 2Sample Output3HintSource参考博客思路:如果iii必须要排在原创 2020-09-01 18:59:47 · 751 阅读 · 0 评论 -
P1169 [ZJOI2007]棋盘制作(悬线法)
题目描述国际象棋是世界上最古老的博弈游戏之一,和中国的围棋、象棋以及日本的将棋同享盛名。据说国际象棋起源于易经的思想,棋盘是一个8 \times 88×8大小的黑白相间的方阵,对应八八六十四卦,黑白对应阴阳。而我们的主人公小Q,正是国际象棋的狂热爱好者。作为一个顶尖高手,他已不满足于普通的棋盘与规则,于是他跟他的好朋友小W决定将棋盘扩大以适应他们的新规则。小Q找到了一张由N \times MN×M个正方形的格子组成的矩形纸片,每个格子被涂有黑白两种颜色之一。小Q想在这种纸中裁减一部分作为新棋盘,当然,原创 2020-07-16 15:01:51 · 306 阅读 · 0 评论 -
P2701 [USACO5.3]巨大的牛棚Big Barn(悬线法,扫描法,DP)
题目描述农夫约翰想要在他的正方形农场上建造一座正方形大牛棚。他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方。我们假定,他的农场划分成 N x N 的方格。输入数据中包括有树的方格的列表。你的任务是计算并输出,在他的农场中,不需要砍树却能够修建的最大正方形牛棚。牛棚的边必须和水平轴或者垂直轴平行。EXAMPLE考虑下面的方格,它表示农夫约翰的农场,‘.'表示没有树的方格,‘#'表示有树的方格1 2 3 4 5 6 7 81 . . . . . . . .2 . # . .原创 2020-07-16 13:23:05 · 325 阅读 · 0 评论 -
EOJ 1065. 糖果盒(悬线法)
一个被分为 n*m 个格子的糖果盒,第 i 行第 j 列位置的格子里面有 a [ i ][ j ] 颗糖。本来 tenshi 打算送这盒糖果给某 PPMM 的,但是就在要送出糖果盒的前一天晚上,一只极其可恶的老鼠夜袭糖果盒,有部分格子被洗劫并且穿了洞。tenshi 必须尽快从这个糖果盒里面切割出一个矩形糖果盒,新的糖果盒不能有洞,并且 tenshi 希望保留在新糖果盒内的糖的总数尽量多。请帮 tenshi 设计一个程序 计算一下新糖果盒最多能够保留多少糖果。输入格式从标准输入读入数据。第一行有两个整数原创 2020-07-16 11:18:38 · 370 阅读 · 0 评论 -
P1578 奶牛浴场(扫描法)
题目描述由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少。为了讨好奶牛,John决定在牛场中建造一个大型浴场。但是John的奶牛有一个奇怪的习惯,每头奶牛都必须在牛场中的一个固定的位置产奶,而奶牛显然不能在浴场中产奶,于是,John希望所建造的浴场不覆盖这些产奶点。这回,他又要求助于Clevow了。你还能帮助Clevow吗?John的牛场和规划的浴场都是矩形。浴场要完全位于牛场之内,并且浴场的轮廓要与牛场的轮廓平行或者重合。浴场不能覆盖任何产奶点,但是产奶点可以位于浴场的轮廓上。Cl原创 2020-07-16 10:11:06 · 501 阅读 · 1 评论 -
Jewel Thief Gym - 101002H(背包DP,决策单调性)
题意:n个物品,每个物品有重量和价值。求背包体积为1~m,这m种体积每种获得的最大价值。思路:第一道决策单调性DP。介绍:https://zhuanlan.zhihu.com/p/136022523本题的n的范围很大,突破点就在于每个物品的体积(最大只有300)。先按正常背包dp,设状态f[i][j]f[i][j]f[i][j],代表选了前iii个物品,体积为jjj时的最大价值。然后写出转移方程f[i][j]=max(f[i−1][j−a[i].x∗s]+a[i].v∗s)f[i][j]=m.原创 2020-07-10 11:57:21 · 470 阅读 · 0 评论 -
Watching Fireworks is Fun CodeForces - 372C(单调队列DP)
A festival will be held in a town’s main street. There are n sections in the main street. The sections are numbered 1 through n from left to right. The distance between each adjacent sections is 1.In the festival m fireworks will be launched. The i-th (1原创 2020-06-27 12:22:22 · 322 阅读 · 1 评论 -
Journey to the The World Start Gym - 100801J(单调队列DP+二分)
题意:表示题意真的不好懂。意思是n个车站,你要从1号车站走到n号车站,每走一个车站时间为1。然后有行程为iii的地铁卡,代表最多能走iii个车站。可以在每个车站对地铁卡进行充值,充值时间为d[i]d[i]d[i]。现在已知每个地铁卡的价格p[i]p[i]p[i],求选择一个地铁卡使得能在ttt时间内到达nnn车站思路:首先需要设置p[i]=min(p[i+1],p[i])p[i]=min(p[i+1],p[i])p[i]=min(p[i+1],p[i]),因为每张地铁卡可以走到范围内的任意车.原创 2020-05-17 18:11:25 · 273 阅读 · 0 评论 -
BZOJ1010: [HNOI2008]玩具装箱toy(斜率优化dp)
Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1…N的N件玩具,第i件玩具经过压缩后变成一维长度为Ci.为了方便整理,P教授要求在一个一维容器中的玩具编号是连续的。同时如果一个一维容器中有多个玩具,那么两件玩具之间要加入一个单位长度的填充物,形...原创 2020-01-30 11:11:19 · 234 阅读 · 0 评论 -
Dividing the Path POJ - 2373(单调队列dp)
Farmer John’s cows have discovered that the clover growing along the ridge of the hill in his field is particularly good. To keep the clover watered, Farmer John is installing water sprinklers along t...原创 2020-01-19 18:57:53 · 247 阅读 · 0 评论 -
BZOJ3594 [Scoi2014]方伯伯的玉米田(lis变形,二维树状数组DP)
Description方伯伯在自己的农田边散步,他突然发现田里的一排玉米非常的不美。这排玉米一共有N株,它们的高度参差不齐。方伯伯认为单调不下降序列很美,所以他决定先把一些玉米拔高,再把破坏美感的玉米拔除掉,使得剩下的玉米的高度构成一个单调不下降序列。方伯伯可以选择一个区间,把这个区间的玉米全部拔高1单位高度,他可以进行最多K次这样的操作。拔玉米则可以随意选择一个集合的玉米拔掉。问能最多...原创 2019-12-03 00:07:32 · 172 阅读 · 0 评论 -
BZOJ1233. [Usaco2009Open]干草堆tower(单调队列dp)
Description奶牛们讨厌黑暗。 为了调整牛棚顶的电灯的亮度,Bessie必须建一座干草堆使得她能够爬上去够到灯泡 。一共有N大包的干草(1<=N<=100000)(从1到N编号)依靠传送带连续的传输进牛棚来。第i包干草有一个 宽度W_i(1<=w_i<=10000)。所有的干草包的厚度和高度都为1. Bessie必须利用所有N包干草来建立起干草堆,并且按照他们进牛...原创 2019-11-23 15:08:35 · 220 阅读 · 0 评论 -
BZOJ1855. [Scoi2010]股票交易(单调队列dp)
Description最近lxhgww又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律。 通过一段时间的观察,lxhgww预测到了未来T天内某只股票的走势,第i天的股票买入价为每股APi,第i天的股票卖出价为每股BPi(数据保证对于每个i,都有APi>=BPi),但是每天不能无限制地交易,于是股票交易所规定第i天的一次买入至多只能购买ASi股,一次卖出至多只能卖出B...原创 2019-11-23 00:36:36 · 163 阅读 · 0 评论 -
ACWING297. 赤壁之战(树状数组dp)
给定一个长度为N的序列A,求A有多少个长度为M的严格递增子序列。输入格式第一行包含整数T,表示共有T组测试数据。每组数据,第一行包含两个整数N和M。第二行包含N个整数,表示完整的序列A。输出格式每组数据输出一个结果,每个结果占一行。输出格式为“Case #x: y”,x为数据组别序号,从1开始,y为结果。由于数据可能很大,请你输入对109+7取模后的结果。数据范围1≤T≤100...原创 2019-10-29 20:46:39 · 253 阅读 · 0 评论 -
Walk Through the Forest UVA - 10917(dij建图跑dp)
Jimmy experiences a lot of stressat work these days, especially sincehis accident made working difficult.To relax after a hard day, he likesto walk home. To make things evennicer, his office is o...原创 2019-10-01 20:55:20 · 204 阅读 · 0 评论 -
340. 通信线路(最短路,第k+1大的边最小,动态规划二分)
在郊区有 N 座通信基站,P 条双向电缆,第 i 条电缆连接基站Ai和Bi。特别地,1 号基站是通信公司的总站,N 号基站位于一座农场中。现在,农场主希望对通信线路进行升级,其中升级第 i 条电缆需要花费Li。电话公司正在举行优惠活动。农产主可以指定一条从 1 号基站到 N 号基站的路径,并指定路径上不超过 K 条电缆,由电话公司免费提供升级服务。农场主只需要支付在该路径上剩余的电缆中,...原创 2019-08-20 21:51:24 · 663 阅读 · 0 评论 -
P2344 奶牛抗议(树状数组优化dp)
题目背景Generic Cow Protests, 2011 Feb题目描述约翰家的N 头奶牛正在排队游行抗议。一些奶牛情绪激动,约翰测算下来,排在第i 位的奶牛的理智度为Ai,数字可正可负。约翰希望奶牛在抗议时保持理性,为此,他打算将这条队伍分割成几个小组,每个抗议小组的理智度之和必须大于或等于零。奶牛的队伍已经固定了前后顺序,所以不能交换它们的位置,所以分在一个小组里的奶牛必须是连续位...原创 2019-09-07 10:39:43 · 115 阅读 · 0 评论 -
洛谷P1455 搭配购买(并查集缩点 01背包)
题目描述明天就是母亲节了,电脑组的小朋友们在忙碌的课业之余挖空心思想着该送什么礼物来表达自己的心意呢?听说在某个网站上有卖云朵的,小朋友们决定一同前往去看看这种神奇的商品,这个店里有n朵云,云朵已经被老板编号为1,2,3,……,n,并且每朵云都有一个价值,但是商店的老板是个很奇怪的人,他会告诉你一些云朵要搭配起来买才卖,也就是说买一朵云则与这朵云有搭配的云都要买,电脑组的你觉得这礼物实在是太新奇...原创 2019-09-07 11:01:22 · 219 阅读 · 0 评论 -
洛谷P1816 忠诚(倍增dp,rmq)
题目描述老管家是一个聪明能干的人。他为财主工作了整整10年,财主为了让自已账目更加清楚。要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意。但是由于一些人的挑拨,财主还是对管家产生了怀疑。于是他决定用一种特别的方法来判断管家的忠诚,他把每次的账目按1,2,3…编号,然后不定时的问管家问题,问题是这样的:在a到b号账中最少的一笔是多少?为了让管家没时间作假他总是一次问多个问题。输...原创 2019-09-07 11:42:00 · 223 阅读 · 0 评论 -
洛谷P1725 琪露诺(单调队列优化dp)
题目描述在幻想乡,琪露诺是以笨蛋闻名的冰之妖精。某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来。但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸。于是琪露诺决定到河岸去追青蛙。小河可以看作一列格子依次编号为0到N,琪露诺只能从编号小的格子移动到编号大的格子。而且琪露诺按照一种特殊的方式进行移动,当她在格子i时,她只移动到区间[i+l,i+r]中的任意一格。你问为什么...原创 2019-09-07 12:19:53 · 269 阅读 · 0 评论