![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
AcWing算法提高课
文章平均质量分 88
星河依旧长明
备战中考的初三生 && 吉林 OIer,因为学业,不定期更新
展开
-
AcWing算法提高课-2.3.1矩阵距离
这种算法即为 “多源 BFS”。具体算法流程为:将所有源点都入队,然后正常跑 BFS。的位置用 BFS 向外扩展,并处理出所有的距离。给定一个 01 矩阵,求矩阵中每个元素离。列的 01 矩阵,数字之间没有空格。列的矩阵,相邻数字之间用空格隔开。发现这样的话较麻烦,于是改为考虑从。原创 2023-12-31 11:04:50 · 1028 阅读 · 0 评论 -
AcWing算法提高课-2.2.3抓住那头牛
假设牛没有意识到农夫的行动,站在原地不动。输出一个整数,表示抓到牛所花费的最少时间。农夫和牛都位于数轴上,农夫起始位于点。农夫知道一头牛的位置,想要抓住它。分三种情况考虑即可,注意不要越界。农夫最少要花多少时间才能抓住牛?要求时间最短,考虑 BFS。思路较简单,直接上代码。共一行,包含两个整数。原创 2023-12-31 10:40:50 · 897 阅读 · 0 评论 -
AcWing算法提高课-1.4.2股票买卖 IV
A:第一支股票第一次操作只有买或不买,一定不可能是卖或不卖,因此第一支股票买入时必须按照一次交易处理。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。注意到每次转移全部用的上一层的状态,因此我们考虑滚动数组优化,直接删掉。设计一个算法来计算你所能获取的最大利润,你最多可以完成。,表示数组的长度以及你可以完成的最大交易笔数。次,最后手里不剩股票的所有状态)。发现空间卡的很紧,容易 MLE。的正整数,表示完整的数组。输出一个整数,表示最大利润。数组的第一维,还是正确的。原创 2023-12-22 20:29:11 · 951 阅读 · 0 评论 -
AcWing算法提高课-2.2.2武士风度的牛
这头神奇的牛像其它牛一样喜欢吃草,给你一张地图,上面标注了 The Knight 的开始位置,树、灌木、石头以及其它障碍的位置,除此之外还有一捆草。这头牛有一个独一无二的超能力,在农场里像 Knight 一样地跳(就是我们熟悉的象棋中马的走法)。农民 John 有很多牛,他想交易其中一头被 Don 称为 The Knight 的牛。虽然这头神奇的牛不能跳到树上和石头上,但是它可以在牧场上随意跳,我们把牧场用一个。现在你的任务是,确定 The Knight 要想吃到草,至少需要跳多少次。原创 2023-12-21 09:52:33 · 815 阅读 · 0 评论 -
AcWing算法提高课-2.2.1迷宫问题
表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。输出从左上角到右下角的最短路线,如果答案不唯一,输出任意一条路径均可。求最短路径显然 BFS,而题目要求输出路径,所以考虑记录转移。按顺序,每行输出一个路径中经过的单元格的坐标,左上角坐标为。开始 BFS,每次扩展出的新节点维护转移的信息,最后从。开始 BFS,这样最后在转移的时候直接输出答案就好了。数据保证至少存在一条从左上角走到右下角的路径。它表示一个迷宫,其中的。原创 2023-12-21 09:26:51 · 836 阅读 · 0 评论 -
AcWing算法提高课-2.1.3山峰和山谷
你的任务是,对于给定的地图,求出山峰和山谷的数量,如果所有格子都有相同的高度,那么整个地图即是山峰,又是山谷。FGD 小朋友特别喜欢爬山,在爬山的时候他就在研究山峰和山谷。如果一个连通块周围没有比他高的,那他就是山峰。给定一个地图,为 FGD 想要旅行的区域,地图被分为。为了能够对旅程有一个安排,他想知道山峰和山谷的数量。若两个格子有公共顶点,那么它们就是相邻的格子,如与。共一行,包含两个整数,表示山峰和山谷的数量。的矩阵,表示地图上每个格子的高度。原创 2023-12-21 09:05:35 · 932 阅读 · 0 评论 -
AcWing算法提高课-1.4.1大盗阿福
阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动,然后警察就会蜂拥而至。趁着月黑风高,阿福打算今晚洗劫一条街上的店铺。该行包含一个整数,表示阿福在不惊动警察的情况下可以得到的现金数量。作为一向谨慎作案的大盗,阿福不愿意冒着被警察追捕的风险行窃。他想知道,在不惊动警察的情况下,他今晚最多可以得到多少现金?个被空格分开的正整数,表示每一家店铺中的现金数量。接下来的每组数据,第一行是一个整数。家店铺,每家店中都有一些现金。家店铺行窃,获得的现金数量为。家店铺行窃,获得的现金数量为。原创 2023-12-20 20:53:19 · 842 阅读 · 0 评论 -
AcWing算法提高课-4.1.3程序自动分析
的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件同时被满足。最后判断不等条件,如果两个变量在同一个连通块内但有不等条件约束,那就不合法。,这些约束条件显然是不可能同时被满足的,因此这个问题应判定为不可被满足。在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。先处理“相等”的约束条件,由于可以连等,我们考虑并查集维护。,表示需要判定的问题个数,注意这些问题之间是相互独立的。,表示该问题中需要被满足的约束条件个数。个问题判定为可以被满足,原创 2023-12-20 13:57:00 · 837 阅读 · 0 评论 -
AcWing算法提高课-4.1.2搭配购买
但是商店老板跟他说,一些云朵要搭配来买才好,所以买一朵云则与这朵云有搭配的云都要买。考虑使用并查集进行缩点,然后对于所有连通块跑 0-1 背包。Joe觉得云朵很美,决定去山上的商店买一些云朵。但是Joe的钱有限,所以他希望买的价值越多越好。一行,表示可以获得的最大价值。,并且每朵云都有一个价值。一个比较板子的有依赖背包。原创 2023-12-20 13:28:38 · 881 阅读 · 0 评论 -
AcWing算法提高课-4.1.1格子游戏
注意到如果最终成环,那么最后一次连接的时候两个端点在同一个连通块内。)为止,“封圈”的那个人就是赢家。因为棋盘实在是太大了,他们的游戏实在是太长了!,代表了画线的起点坐标,接着用空格隔开一个字符,假如字符是。Alice 和 Bob 玩了一个古老的游戏:首先画一个。于是请你写一个程序,帮助他们计算他们是否结束了游戏?对于连通块的问题,我们使用并查集解决。输出一行:在第几步的时候结束。,则是向下连一条边,如果是。行,每行首先有两个数字。,因此预处理是瓶颈。原创 2023-12-20 11:51:56 · 870 阅读 · 0 评论 -
AcWing算法提高课-5.6.2青蛙的约会
为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,会在什么时候碰面。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。否则,根据余数的性质,方程。原创 2023-10-18 10:05:56 · 251 阅读 · 0 评论 -
AcWing算法提高课-4.3.4一个简单的整数问题2
当进行区间修改时,只修改当前区间,而它的子节点的修改先欠着,等用到了子节点的时候再往下传。如果这个节点有懒标记,就把懒标记加到子节点的懒标记中,并把当前节点的懒标记清空。条指令,每条指令的格式如题目描述所示。对于每个询问,输出一个整数表示答案。对于每个询问,输出一个整数表示答案。差不多,修改懒标记和区间和。原创 2023-10-13 11:31:46 · 76 阅读 · 0 评论 -
AcWing算法提高课-5.6.1同余方程
由于题目要求输出正整数解,所以我们输出。我们知道,扩展欧几里得算法可以计算形如。输入只有一行,包含两个正整数。输出只有一行,包含一个正整数。输入数据保证一定有解。所以直接进行转化即可。,表示最小正整数解。原创 2023-10-04 12:01:37 · 256 阅读 · 0 评论 -
AcWing算法提高课-4.3.2你能回答这些问题吗
要求一段区间的最大连续子段和,我们思考要维护哪些信息。对于每个查询指令,输出一个整数表示答案。对于每个查询指令输出一个整数表示答案。此时我们发现还应该维护每个区间的。我们发现,应该维护每个区间的。线段树单点修改区间查询,此情况与“2”同理。原创 2023-09-26 12:00:00 · 50 阅读 · 0 评论 -
AcWing算法提高课-4.3.1最大数
是在这个添加操作之前最后一个询问操作的答案(如果之前没有询问操作,则。线段树板子,虽然强制在线了,但是对于在线的线段树来说没什么影响。对于每一个询问操作,输出一行。该行只有一个数,即序列中最后。写一个程序,读入操作的序列,并输出询问操作的答案。,则表示向序列后面加一个数,加入的数是。第一个操作一定是添加操作。,则表示这个操作是询问序列中最后。不过是把求和换成求最大值而已,把。程序运行的最开始,整数序列为空。行,每一行表示一个操作。且不超过当前序列的长度。原创 2023-09-25 18:14:47 · 79 阅读 · 0 评论 -
AcWing算法提高课-5.5.2最大公约数
这里不再进行推导,读者可以自行点击上方链接进行阅读。输出一个整数,表示满足条件的数对数量。的所有质因数进行计算就不会超时。已经是常识,所以很有必要写一条。此时进行计算,时间复杂度近似为。可以考虑预处理欧拉函数前缀和。原创 2023-08-27 12:19:20 · 150 阅读 · 1 评论 -
AcWing算法提高课-5.5.1可见的点
对于正整数n,欧拉函数是小于n的正整数中与n互质的数的数目.的连线中没有通过其他任何点,则称该点在原点处是可见的。对称,所以我们只要统计上面一半(或下面)然后把答案。在一个平面直角坐标系的第一象限内,如果一个点。就是不可见的,因为它与原点的连线会通过点。的欧拉函数,然后直接进行计算即可。每组测试数据占一行,包含一个整数。的数量(可见点不包括原点)。开始),该组测试数据对应的。每组测试数据的输出占据一行。应包括:测试数据的编号(从。所以整个图能看见的点的数量为。原创 2023-08-26 14:56:50 · 121 阅读 · 0 评论 -
AcWing算法提高课-5.1.1哥德巴赫猜想
但是作者因为考虑到题解的严谨性,还是写了无解情况的判断。虽然哥德巴赫猜想没有被证明,但是通过我们暴力算法的验证,我们发现在。现在,你的任务是验证所有小于一百万的偶数能否满足哥德巴赫猜想。观察数据范围,我们发现,需要复杂度最高是。的所有质数,然后从第一个开始枚举。的偶数都可以拆成两个奇素数之和。所以我们考虑使用线性筛预处理出。每组数据占一行,包含一个偶数。显然这是一道关于质数的题。的范围内的哥德巴赫猜想。对于每组数据,输出形如。最后我们考虑无解的情况。原创 2023-08-13 12:00:00 · 139 阅读 · 0 评论 -
AcWing算法提高课-4.2.3一个简单的整数问题2
给定一个长度为 NNN 的数列 AAA,以及 MMM 条指令,每条指令可能是以下两种之一:对于每个询问,输出一个整数表示答案。第一行两个整数 N,MN,MN,M。第二行 NNN 个整数 A[i]A[i]A[i]。接下来 MMM 行表示 MMM 条指令,每条指令的格式如题目描述所示。对于每个询问,输出一个整数表示答案。每个答案占一行。1≤N,M≤1051 \le N,M \le 10^51≤N,M≤105,∣d∣≤10000|d| \le 10000∣d∣≤10000,∣A[i]∣≤109|A[i]| \原创 2023-08-12 12:00:00 · 171 阅读 · 0 评论 -
AcWing算法提高课-4.2.2一个简单的整数问题
原本树状数组将一个点加c的操作就转变为了将区间加c。所以我们将原数组进行一次差分,再将差分数组加到树状数组内。条指令,每条指令的格式如题目描述所示。对于每个询问,输出一个整数表示答案。对于每个询问,输出一个整数表示答案。这样,原本树状数组询问的。的前缀和,就转变为了求。这是一道模板题,操作为。普通的树状数组处理的是。树状数组每次操作都是。所以时间复杂度大约是。原创 2023-02-19 09:07:33 · 54 阅读 · 0 评论 -
AcWing算法提高课-4.2.1楼兰图腾
这两天没更新,因为每天都有OI的集训,早八晚九于是就鸽了6篇题解没写。题目描述在完成了分配任务之后,西部 314 来到了楼兰古城的西部。相传很久以前这片土地上(比楼兰古城还早)生活着两个部落,一个部落崇拜尖刀(V),一个部落崇拜铁锹(∧),他们分别用 V 和 ∧ 的形状来代表各自部落的图腾。西部 314 在楼兰古城的下面发现了一幅巨大的壁画,壁画上被标记出了 �n 个点,经测量发现这 �n 个点的水平位置和竖直位置是两两不同的。西部 314 认为这幅壁画所包含的信息与这 �n个点的原创 2023-02-14 13:58:49 · 91 阅读 · 0 评论 -
AcWing算法提高课-3.1.3香甜的黄油
第 N+2 行到第 N+C+1 行:每行有三个数:相连的牧场A、B,两牧场间距 D,当然,连接是双向的。农夫John很狡猾,就像以前的巴甫洛夫,他知道他可以训练这些奶牛,让它们在听到铃声时去一个特定的牧场。给出各头牛在的牧场和牧场间的路线,找出使所有牛到达的路程和最短的牧场(他将把糖放在那)。把糖放在一片牧场上,他知道 N 只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。但是,没有奶牛的牧场虽然有可能贡献答案,也有可能不与有奶牛的牧场连通。第一行: 三个数:奶牛数 N,牧场数 P,牧场间道路数 C。原创 2023-03-01 21:53:46 · 290 阅读 · 0 评论 -
AcWing算法提高课-3.1.2信使
因为准备充足,每个哨所内都安排了足够的信使(如果一个哨所与其他 k 个哨所有通信联系的话,这个哨所内至少会配备。类似,代码部分也给出了朴素Dijkstra和堆优化Dijkstra的代码。当指挥部下达一个命令后,指挥部就派出若干个信使向与指挥部相连的哨所送信。信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单位)。当一个哨所接到信后,这个哨所内的信使们也以同样的方式向其他哨所送信。条边的无向图,求编号为1的点与其他点之间最短距离的最大值。个哨所,每个哨所可能会与其他若干个哨所之间有通信联系。原创 2023-03-01 21:03:09 · 348 阅读 · 0 评论 -
AcWing算法提高课-3.1.1热浪
这就基本上是一道模板题了,作者在这里是用朴素Dijkstra算法写的。农夫John此时身先士卒地承担起向德克萨斯运送大量的营养冰凉的牛奶的重任,以减轻德克萨斯人忍受酷暑的痛苦。所以在OI赛制下,正权图的最短路尽量还是用Dijkstra,除非时间限制真的不够用。因为本题的点数和边数都不是很大,所以原则上,无论用邻接表或者邻接矩阵都是可以存下的。题目的大致意思是,给定一个无向图并给定起点和终点,求其最短路径。求从起始的城镇 Ts 到终点的城镇 Te 最小的总费用。原创 2023-02-28 22:03:16 · 382 阅读 · 0 评论 -
AcWing算法提高课-2.1.2城堡问题
城堡的内墙被计算两次,方块(1,1)的南墙同时也是方块(2,1)的北墙。来描述,我们用1表示西墙,2表示北墙,4表示东墙,8表示南墙,请你编写一个程序,计算城堡一共有多少房间,最大的房间有多大。这道题除了是用数字表示每个房间的墙的方向,其它的与上一题。个整数,每个整数都表示平面图对应位置的方块的墙的特征。为3,则 3 = 1 + 2,该方块包含西墙和北墙。,分别表示城堡南北方向的长度和东西方向的长度。输入的数据保证城堡至少有两个房间。为该方块包含墙的数字之和。图1是一个城堡的地形图。例如,如果一个方块的。原创 2023-04-23 21:58:13 · 355 阅读 · 0 评论 -
AcWing算法提高课-2.1.1池塘计数
接下来 N 行,每行包含 M 个字符,字符为”W”或”.”,用以表示矩形土地的积水状况,字符之间没有空格。每个单元格视为与其上、下、左、右、左上、右上、左下、右下八个邻近单元格相连。每个单元格内,如果包含雨水,则用”W”表示,如果不含雨水,则用”.”表示。请你输出共有多少片池塘,即矩阵中共有多少片相连的”W”块。现在,约翰想知道他的土地中形成了多少片池塘。最近,由于降雨的原因,部分土地被水淹没了。现在用一个字符矩阵来表示他的土地。输出一个整数,表示池塘数目。原创 2023-02-25 21:51:26 · 262 阅读 · 0 评论 -
AcWing算法提高课-1.3.19金明的预算方案
这四种组合是互斥的,最多只能从中选一种,因此可以将每种组合看作一个物品,那么问题就变成了分组背包问题。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过。金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。输出文件只有一个正整数,为不超过总钱数的物品的价格与重要度乘积的总和的最大值。元)的前提下,使每件物品的价格与重要度的乘积的总和最大。如果要买归类为附件的物品,必须先买该附件所属的主件。的物品的基本数据,每行有。原创 2023-08-11 12:00:00 · 65 阅读 · 0 评论 -
AcWing算法提高课-1.3.18能量石
当杜达开始吃一块能量石时,他就会立即获得该能量石所含的全部能量(无论实际吃完该石头需要多少时间)。无论杜达选择吃哪块石头,剩下的两个石头的能量都会耗光。请问杜达通过吃能量石可以获得的最大能量是多少?单位的能量,这是能获得的最大值,所以答案是。由于他的嘴很小,所以一次只能吃一块能量石。此外,能量石会随着时间流逝逐渐失去能量。能量石很硬,吃完需要花不少时间。不同的能量石包含的能量可能不同。单位的能量,并且每秒将失去。能量石中包含的能量最多降低至。杜达靠吃能量石来获取能量。是可以获得的最大能量值。原创 2023-08-10 12:00:00 · 101 阅读 · 0 评论 -
AcWing算法提高课-1.3.17背包问题求具体方案
而要求字典序最小,我们需要在选和不选之间优先选当前物品。输出一行,包含若干个用空格隔开的整数,表示最优解中所选物品的编号序列,且该编号序列的字典序最小。所以我们把原本正序遍历的物品倒过来枚举,这样我们选择的时候优先考虑选择该物品就可以了。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。这里的字典序是指:所选物品的编号所构成的序列。,用空格隔开,分别表示物品数量和背包容积。,用空格隔开,分别表示第。件物品的体积和价值。原创 2023-08-09 14:13:17 · 179 阅读 · 0 评论 -
AcWing算法提高课-1.3.16背包问题求方案数
求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。找出所有最优解的状态转移路径,从而求解出方案数。,用空格隔开,分别表示物品数量和背包容积。注意答案可能很大,请输出答案模。每件物品只能使用一次。,用空格隔开,分别表示第。本题为DP问题,可以使用。件物品的体积和价值。原创 2023-07-31 19:12:33 · 135 阅读 · 0 评论 -
AcWing算法提高课-1.3.15有依赖的背包问题
物品之间具有依赖关系,且依赖关系组成一棵树的形状。如果选择一个物品,则必须选择它的父节点。如果选择物品5,则必须选择物品1和2。这是因为2是5的父节点,1是2的父节点。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。,用空格隔开,分别表示物品的体积、价值和依赖的物品编号。,用空格隔开,分别表示物品个数和背包容量。:枚举每个状态分给各个子节点的体积。行数据,每行数据表示一个物品。输出一个整数,表示最大价值。,依赖的父节点编号是。原创 2023-07-10 08:46:57 · 107 阅读 · 0 评论 -
AcWing算法提高课-1.3.14开心的金明
输出文件只有一个正整数,为不超过总钱数的物品的价格与重要度乘积的总和的最大值(数据保证结果不超过。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过。金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的。元)的前提下,使每件物品的价格与重要度的乘积的总和最大。于是,他把每件物品规定了一个重要度,分为。的物品的基本数据,每行有。为希望购买物品的个数)表示该物品的重要度)原创 2023-06-08 12:50:57 · 304 阅读 · 0 评论 -
AcWing算法提高课-1.3.13机器分配
各分公司若获得这些设备,可以为国家提供一定的盈利。盈利与分配的设备数量有关。分配原则:每个公司有权获得任意数目的设备,但总台数不超过设备数。问:如何分配这M台设备才能使国家得到的盈利最大?个数,即分公司编号和该分公司获得设备台数。第一行有两个数,第一个数是分公司数。答案不唯一,输出任意合法方案即可。的高效设备,准备分给下属的。本题为DP问题,可以使用。,第二个数是设备台数。第一行输出最大盈利值;原创 2023-06-08 12:04:57 · 412 阅读 · 0 评论 -
AcWing算法提高课-1.3.12潜水员
如果潜水员需要5升的氧和60升的氮则总重最小为249(1,2或者4,5号气缸)。仅一行包含一个整数,为潜水员完成工作所需的气缸的重量总和的最低值。你的任务就是计算潜水员为了完成他的工作需要的气缸的重量的最低值。:即使所需要的氧气或者氮气所需的是数量是负数,但其所需数量与。他有一个带2种气体的气缸:一个为氧气,一个为氮气。潜水员为了完成他的工作需要特定数量的氧和氮。他完成工作所需气缸的总重的最低限度的是多少?让潜水员下潜的深度需要各种数量的氧和氮。个气缸里的氧和氮的容量及气缸重量。潜水员有一定数量的气缸。原创 2023-05-27 15:28:51 · 716 阅读 · 0 评论 -
AcWing算法提高课-1.3.11二维费用的背包问题
求解将哪些物品装入背包,可使物品总体积不超过背包容量,总重量不超过背包可承受的最大重量,且价值总和最大。类比一维费用的01背包问题,二维费用的背包问题只是加入了一个花费。,用空格隔开,分别表示物品件数、背包容积和背包可承受的最大重量。因此,同样的,第二维的费用也是倒着循环,原理与普通一维背包相同。的背包,背包能承受的最大重量是。每件物品只能用一次。件物品的体积、重量和价值。输出一个整数,表示最大价值。,用空格隔开,分别表示第。原创 2023-05-27 14:59:49 · 820 阅读 · 0 评论 -
AcWing算法提高课-1.3.10混合背包问题
求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。,用空格隔开,分别表示物品种数和背包容积。种物品的体积、价值和数量。输出一个整数,表示最大价值。,用空格隔开,分别表示第。本题为DP问题,可以使用。在我看来,本题其实就是。原创 2023-05-20 16:09:58 · 762 阅读 · 0 评论 -
AcWing算法提高课-1.3.9庆功会
接下来n行,每行3个数,v、w、s,分别表示第I种奖品的价格、价值(价格与价值是不同的概念)和能购买的最大数量(买0件到s件均可)。为了庆贺班级在校运动会上取得全校第一名成绩,班主任决定开一场庆功会,为此拨款购买奖品犒劳运动员。(不过实测的时候二进制优化跑了 51ms,而单调队列优化却跑了 80ms。第一行二个数n,m,其中n代表希望购买的奖品的种数,m表示拨款金额。一行:一个数,表示此次购买能获得的最大的价值(注意!期望拨款金额能购买最大价值的奖品,可以补充他们的精力和体力。原创 2023-05-13 20:13:02 · 195 阅读 · 0 评论 -
AcWing算法提高课-1.3.8多重背包问题 III
求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。,用空格隔开,分别表示物品种数和背包容积。本题考查多重背包的单调队列优化方法。种物品的体积、价值和数量。输出一个整数,表示最大价值。,用空格隔开,分别表示第。本题为DP问题,可以使用。原创 2023-05-20 15:28:28 · 761 阅读 · 0 评论 -
AcWing算法提高课-1.3.7货币系统
当且仅当一张货币面额可以被该系统下其他货币表示时,此货币对该系统能表示的面额没有影响,换言之这个货币没有存在的必要,所以将这类的货币从系统中去除就可以得到等价的最小数量货币系统。可以用 DP 求出能表示该面额的方案数,若对于一张货币方案数唯一(即只能被自己表示),则这张货币不能被省略,反之可以被省略。然而,在网友的国度中,货币系统可能是不完善的,即可能存在金额。,它要么均可以被两个货币系统表出,要么不能被其中任何一个表出。在一个完善的货币系统中,每一个非负整数的金额。接下来按照如下格式分别给出。原创 2023-05-13 16:55:23 · 662 阅读 · 0 评论 -
AcWing算法提高课-1.3.6货币系统
给你一个n种面值的货币系统,求组成面值为m的货币有多少种方案。接下来n行,每行包含一个整数,表示一种货币的面值。共一行,包含一个整数,表示方案数。第一行,包含两个整数n和m。本题为DP问题,可以使用。原创 2023-05-13 16:41:04 · 631 阅读 · 0 评论