
线性dp
文章平均质量分 79
CCloth
这个作者很懒,什么都没留下…
展开
-
[dp][二进制]Infinite Set Codeforces1635D
接下来考虑一个确定的数字x能扩展出多少小于2^p的数字,这个问题其实和一道经典dp题目一样,一个人上楼梯,一次要么上一阶要么上两阶,问最终上到n阶的不同方案数,因为两种扩展区别就在于一个是添加1个数,另一个是添加2个数,所以就和上楼梯的做法一样了。有n个数字构成一个集合,对于集合中的每个数字都可以进行扩展,比如数字x可以扩展出2*x+1和4*x,被扩展出的数字仍然可以被扩展,问这个集合内小于2^p的数字有多少个。原创 2023-01-06 12:49:45 · 504 阅读 · 0 评论 -
[dp][图论]Node Pairs Codeforces1763E
其实知道了p可达图最少点数就知道了最多的单向连通数了,因为(u, v)之间的关系就三种,要么是双向连通,要么是单向连通,要么是不连通,而(u, v)的总数一共是n*(n-1)/2个,现在已知其中有p个是双向连通,那么单向连通+不连通个数就是n*(n-1)/2-p个,由于要单向连通数尽量多,那么自然就是n*(n-1)/2-p个了。其中p可达即为u < v且从u能到v从v也能到u的(u, v)个数,单向连通即u < v且从u能到v或v能到u的(u, v)个数。原创 2023-01-02 17:15:37 · 220 阅读 · 0 评论 -
[贪心][dp]Graph Cost Codeforces1731E
每次操作的代价永远比连边条数多1,所以要想代价最少,那么操作次数应该最少。一开始的时候也不会求这个值,后来参考了题解,其实这样的点对数就是1~n/x中互质的数字对数。而1~n中互质的数字对数可以用dp来求得,设dp[i]为1~i中互质的数字对数,那么显然dp[i] = dp[i-1]+phi[i],phi[i]时i的欧拉函数。于是就能求出权值为k时连k-1条边的操作次数了,也就是dp[k]/(k-1)。每次操作可以连k条边,边权和代价都为k+1,同时若u和v进行连边,必须满足边权 = gcd(u, v)。原创 2022-12-30 12:19:51 · 1060 阅读 · 1 评论 -
[线性dp]Sending a Sequence Over the Network Codeforces1741E
设状态dp[i]表示区间[1, i]是否能通过某个数组得到,初始化全部为false,dp[0]为true,然后遍历b数组,对于每个位置其实就两种情况,一种是b[i]作为左侧区间的长度,一种是b[i]作为右侧区间的长度,对于b[i]是左侧区间长度情况,如果不会越界且dp[i-b[i]-1] == true,那dp[i] = true,对于另一种情况,如果不会越界且dp[i-1] == true,那么dp[i+b[i]] = true。原创 2022-10-12 18:10:09 · 701 阅读 · 0 评论 -
[线性dp]Burenka and Traditions Codeforces1719D1&&D2
设dp[i]表示将前i个元素全部置0的最小代价,状态转移就是选择一个最大的j,使得[j, i]的区间异或和为0,令dp[i] = min(dp[i-1]+a[i]!=0,dp[j-1]+j-i),选择最大的j其实是个优化,理论上是要对于所有右端点为i的异或和为0的区间进行统计,但是由于左端点小于最大的j是不优的,所以直接选最大的j就行。对区间[l, r]内的数字可以全部异或上一个数字x,代价为区间长度除2上取整,x值可以任取,求让整个数组全0的最小代价。原创 2022-09-28 23:38:02 · 243 阅读 · 0 评论 -
[dp优化]Chip Move Codeforces1716D
有n个点顺序排列在1~n,起点在0,第i次跳跃的距离需要是m+i-1的倍数,且跳跃距离不能为0,问跳到每个点的方案数。原创 2022-09-14 20:19:09 · 289 阅读 · 0 评论 -
[dp]Z-Game on grid 2022牛客多校第6场 M
最后要记得边界位置需要特殊处理一下,代码中有体现。给出一张地图,Alice和Bob两人轮流操纵棋子移动,起点是(1, 1),终点时(n, m),每次棋子只能向右或者向下移动,当棋子走到‘A’时Alice获胜,走到‘B’时Bob获胜,走到(n, m)时为平局,分别输出Alice是否一定能走到‘A’,是否一定能走到(n, m),是否一定能走到‘B’。...原创 2022-08-07 10:57:42 · 245 阅读 · 0 评论 -
[dp]Task Computing 2022牛客多校第4场 A
之后就可以根据贡献差来sort了,sort后得到的新序列中任意两位置交换一定不会更优,所以只需要在该序列中找到一个长度为m的子序列使其贡献最大,这个过程可以通过dp来实现,一开始想的状态是dp[i][j]表示前i个数中选j个得到的最大贡献,但是这样设状态的话当前状态不能通过上一个状态转移过来,也就是dp[i][j]不一定是通过dp[i-1][j-1]得到的,因为dp[i][j]的值还需要加上一个连乘,很可能加上这个连乘后之前某个状态就比上个状态更优了,所以这道题目不能这么做。...原创 2022-07-31 14:09:44 · 376 阅读 · 0 评论 -
[dp]Two Permutations 2022杭电多校第3场 1012
不过这样空间显然是会爆掉的,所以需要滚动数组优化空间,在优化的时候要注意,理论上滚到新的一层时数组应该全部为0,但是由于循环只有一层,所以不可能多用一个for来清空数组,不过可以注意到每层最多只会改变两个位置的值,所以可以记录下改变的位置是哪两个,当下一层用完这层值后就可以将这两个位置置零。给出两个长度为n的排列a和b,以及一个长度为2*n的序列c,求用a和b归并得到c的不同方案数。...原创 2022-07-27 17:01:32 · 368 阅读 · 0 评论 -
[dp]Link with Level Editor I 2022牛客多校第2场 L
有n个世界,每个世界中都包含m个点,不同世界的图是不同的,现在要从点1走到点m,在某个世界中可以做两种操作,要么呆在原地不动,要么通过一条边走向其他点,在这之后就会被传送至下一个世界,问从1到m需要经过的最少世界数。...原创 2022-07-24 14:06:26 · 270 阅读 · 0 评论 -
[dp]Link with Bracket Sequence I 2022牛客多校第2场 K
设dp[i][j][k]表示含义为考虑b串前i个字符,以及a串前j个字符,a串前j个字符出现在b串前i个字符中且b串左括号比右括号多k个的b串个数,最终答案为dp[m][n][0]。对于dp[i][j][k]首先看b串第i位要放的是否和a串第j位相同,如果相同那么这两个字符可以让a串匹配的字符数加1,所以此时dp[i][j][k]+=dp[i-1][j-1][k-1或k+1],第三维具体是什么取决于b串放的是左括号还是右括号;......原创 2022-07-24 09:52:21 · 201 阅读 · 0 评论 -
[dp]拼题A打卡奖励 2021RoboCom复赛B
拼题 A 的教超搞打卡活动,指定了 N 张打卡卷,第 i 张打卡卷需要 mi 分钟做完,完成后可获得 ci 枚奖励的金币。活动规定每张打卡卷最多只能做一次,并且不允许提前交卷。活动总时长为 M 分钟。请你算出最多可以赢得多少枚金币?输入首先在第一行中给出两个正整数 N(≤10^3) 和 M(≤365×24×60),分别对应打卡卷的数量和以“分钟”为单位的活动总时长(不超过一年)。随后一行给出 N 张打卡卷要花费的时间 mi(≤600),最后一行给出 N 张打卡卷对应的奖励金币数量 ci(≤30)。上原创 2022-07-10 11:13:35 · 325 阅读 · 0 评论 -
[好题][二分][dp][贪心]River Locks CF1700D
Recently in Divanovo, a huge river locks system was built. There are now n locks, the i-th of them has the volume of vivi liters, so that it can contain any amount of water between 0 and vivi liters. Each lock has a pipe attached to it. When the pipe is op原创 2022-07-09 18:06:18 · 222 阅读 · 0 评论 -
[dp][思维]Paranoid String CF1694B
Let's call a binary string TT of length mm indexed from 11 to mm paranoid if we can obtain a string of length 11 by performing the following two kinds of operations m−1m−1 times in any order :For example, if T=T= 001, we can select the substring [T2T3][T2T原创 2022-07-07 19:15:31 · 362 阅读 · 0 评论 -
[思维][dp]Zero Path CF1695C
You are given a grid with nn rows and mm columns. We denote the square on the i-th (1≤i≤n) row and j-th (1≤j≤m) column by (i,j) and the number there by aij. All numbers are equal to 1 or to −1.You start from the square (1,1) and can move one square down or原创 2022-07-06 21:57:25 · 401 阅读 · 0 评论 -
[线性dp][空间优化]Max Sum Plus Plus HDU1024
Now I think you have got an AC in Ignatius.L's "Max Sum" problem. To be a brave ACMer, we always challenge ourselves to more difficult problems. Now you are faced with a more difficult problem.Given a consecutive number sequence S1, S2, S3, S4... Sx, ....原创 2022-04-23 21:55:21 · 429 阅读 · 0 评论 -
[线性dp][贪心]凑零钱 PTA L3-001
韩梅梅喜欢满宇宙到处逛街。现在她逛到了一家火星店里,发现这家店有个特别的规矩:你可以用任何星球的硬币付钱,但是绝不找零,当然也不能欠债。韩梅梅手边有10^4枚来自各个星球的硬币,需要请你帮她盘算一下,是否可能精确凑出要付的款额。输入格式:输入第一行给出两个正整数:N(≤10^4)是硬币的总个数,M(≤10^2)是韩梅梅要付的款额。第二行给出N枚硬币的正整数面值。数字间以空格分隔。输出格式:在一行中输出硬币的面值V1≤V2≤⋯≤Vk,满足条件V1+V2+...+Vk=M...原创 2022-03-20 09:22:30 · 310 阅读 · 0 评论 -
[LIS方案数]低买 AcWing314
给定一段时间内股票的每日售价(正16位整数)。你可以选择在任何一天购买股票。每次你选择购买时,当前的股票价格必须严格低于你之前购买股票时的价格。编写一个程序,确定你应该在哪些天购进股票,可以使得你能够购买股票的次数最大化。例如,下面是一个股票价格时间表: Day 1 2 3 4 5 6 7 8 9 10 11 12Price 68 69 54 64 68 64 70 67 78 62 98 87如果每次购买都必须遵循当前股票价格严格低于之前购买股票时的..原创 2022-03-19 00:11:29 · 141 阅读 · 0 评论 -
[线性dp]花店橱窗 AcWing313
小q和他的老婆小z最近开了一家花店,他们准备把店里最好看的花都摆在橱窗里。但是他们有很多花瓶,每个花瓶都具有各自的特点,因此,当各个花瓶中放入不同的花束时,会产生不同的美学效果。为了使橱窗里的花摆放的最合适,他们得想个办法安排每种花的摆放位置。可是因为小q和小z每天都太忙,没有时间设计橱窗里花的摆法,所以他们想让你帮他们求出花摆放的最大美观程度和每种花所放的位置。每种花都有一个标识,假设杜鹃花的标识数为1,秋海棠的标识数为2,康乃馨的标识数为3,所有的花束在放入花瓶时必...原创 2022-03-18 20:43:43 · 168 阅读 · 0 评论 -
[线性dp]乌龟棋 AcWing312
小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。乌龟棋的棋盘只有一行,该行有N个格子,每个格子上一个分数(非负整数)。棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。乌龟棋中共有M张爬行卡片,分成4种不同的类型(M张卡片中不一定包含所有4种类型的卡片),每种类型的卡片上分别标有 1、2、3、4四个数字之一,表示使用这种卡片后,乌龟棋子将向前爬行相应的格子数。游戏中,玩家每次需要从所有的爬行卡片中选择一张之前没有使用过的爬行卡片...原创 2022-03-18 19:10:26 · 130 阅读 · 0 评论 -
[线性dp]数的划分 c语言网1531
题目描述一个正整数可以划分为多个正整数的和,比如n=3时:3;1+2;1+1+1;共有三种划分方法。给出一个正整数,问有多少种划分方法。输入一个正整数n数据规模和约定n< =100输出一个正整数,表示划分方案数样例输入3样例输出3题意: 给出一个数字n,求n有多少种不同的划分方案。分析: 先列出1到5的所有划分方案,并仔细观察找找规律。1 = 12 = 1+1 or 23 = 1+1+1 or 1+2 or 34 = 1+1+1+原创 2022-02-27 13:13:04 · 497 阅读 · 0 评论 -
[线性dp]砝码称重 2021年蓝桥杯
题目描述你有一架天平和 N 个砝码,这 N 个砝码重量依次是 W1, W2, · · · , WN。请你计算一共可以称出多少种不同的重量?注意砝码可以放在天平两边。输入输入的第一行包含一个整数 N。第二行包含 N 个整数:W1, W2, W3, · · · , WN。输出输出一个整数代表答案。样例输入复制31 4 6样例输出复制10提示【样例说明】能称出的 10 种重量是:1、2、3、4、5、6、7、9、10、11。1 = 1;2 = 6 4原创 2022-02-24 21:00:35 · 519 阅读 · 0 评论 -
[线性dp][单调队列]Golden Sword 洛谷P5858
题目背景小 E 不幸在一场战斗中失去了他的金宝剑。题目描述制造一把金宝剑需要n种原料,编号为1到n,编号为i的原料的坚固值为 ai。炼金是很讲究放入原料的顺序的,因此小 E 必须按照1到n的顺序依次将这些原料放入炼金锅。但是,炼金锅的容量非常有限,它最多只能容纳w个原料。所幸的是,每放入一个原料之前,小 E 可以从中取出一些原料,数量不能超过s个。我们定义第i种原料的耐久度为:放入第i种原料时锅内的原料总数(包括正在放入的原料) ×ai...原创 2022-02-24 19:18:21 · 505 阅读 · 0 评论 -
[01背包]波动数列 2014年蓝桥杯
观察这个数列:1 3 0 2 -1 1 -2 ...这个数列中后一项总是比前一项增加2或者减少3。栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加a或者减少b的整数数列可能有多少种呢?样例说明这两个数列分别是2 4 1 3和7 4 1 -2。输入输入的第一行包含四个整数 n s a b,含义如前面说述。数据规模和约定对于100%的数据,1< =n< =1000,-1,000,000,000< =s<...原创 2022-01-19 00:08:41 · 767 阅读 · 0 评论 -
[LIS][贪心]L2-014 列车调度
火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格式:输入第一行给出一个整数N(2≤N≤105),下一行给出从1到N的整数序号的一个重排列。数字间以空格分隔。输出格式:...原创 2021-10-14 20:57:33 · 122 阅读 · 0 评论 -
[线性dp]2021ccpc网络赛重赛Nun Heh Heh Aaaaaaaaaaa
Problem DescriptionVasily Tadokorov is a stringologist. He thinks a string is fragrant if it can be divided into two parts —nunhehhehas the prefix and a number of (excluding0)aas the suffix. For example,nunhehhehaaaaaais fragrant, butnunhehhehan...原创 2021-10-11 22:01:03 · 281 阅读 · 2 评论