![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法竞赛进阶指南
文章平均质量分 87
昂昂累世士
这个作者很懒,什么都没留下…
展开
-
树形背包模板题(AcWing286 选课)
树形背包经典例题原创 2023-01-21 11:51:22 · 1640 阅读 · 0 评论 -
AcWing 234 放弃测试
本题属于01分数规划的模板题。01分数规划是这样的一类问题,有一堆物品,每一个物品有一个收益ai,一个代价bi,我们要求一个方案使选择的∑ai / ∑bi 最大。比如说在n个物品中选k个物品,使得∑ai / ∑bi 最大。...原创 2022-06-26 18:57:24 · 169 阅读 · 0 评论 -
AcWing 145 超市
题目描述:超市里有 N 件商品,每件商品都有利润 pi 和过期时间 di,每天只能卖一件商品,过期商品不能再卖。求合理安排每天卖的商品的情况下,可以得到的最大收益是多少。输入格式输入包含多组测试用例。每组测试用例,以输入整数 N 开始,接下来输入 N 对 pi 和 di,分别代表第 i 件商品的利润和过期时间。在输入中,数据之间可以自由穿插任意个空格或空行,输入至文件结尾时终止输入,保证数据正确。输出格式对于每组产品,输出一个该组的最大收益值。每个结果占一行。数据范围0≤N≤10000原创 2022-05-20 11:02:00 · 358 阅读 · 0 评论 -
AcWing 367 学校网络
题目描述:一些学校连接在一个计算机网络上,学校之间存在软件支援协议,每个学校都有它应支援的学校名单(学校 A 支援学校 B,并不表示学校 B 一定要支援学校 A)。当某校获得一个新软件时,无论是直接获得还是通过网络获得,该校都应立即将这个软件通过网络传送给它应支援的学校。因此,一个新软件若想让所有学校都能使用,只需将其提供给一些学校即可。现在请问最少需要将一个新软件直接提供给多少个学校,才能使软件能够通过网络被传送到所有学校?最少需要添加几条新的支援关系,使得将一个新软件提供给任何一个学校,其他所原创 2021-07-18 18:38:48 · 374 阅读 · 0 评论 -
AcWing 352 闇の連鎖
题目描述:传说中的暗之连锁被人们称为 Dark。Dark 是人类内心的黑暗的产物,古今中外的勇者们都试图打倒它。经过研究,你发现 Dark 呈现无向图的结构,图中有N个节点和两类边,一类边被称为主要边,而另一类被称为附加边。Dark 有N–1条主要边,并且 Dark 的任意两个节点之间都存在一条只由主要边构成的路径。另外,Dark 还有M条附加边。你的任务是把 Dark 斩为不连通的两部分。一开始 Dark 的附加边都处于无敌状态,你只能选择一条主要边切断。一旦你...原创 2021-05-18 11:54:39 · 293 阅读 · 8 评论 -
AcWing 393 雇佣收银员
题目描述:一家超市要每天24小时营业,为了满足营业需求,需要雇佣一大批收银员。已知不同时间段需要的收银员数量不同,为了能够雇佣尽可能少的人员,从而减少成本,这家超市的经理请你来帮忙出谋划策。经理为你提供了一个各个时间段收银员最小需求数量的清单R(0),R(1),R(2),…,R(23)。R(0)表示午夜00:00到凌晨01:00的最小需求数量,R(1)表示凌晨01:00到凌晨02:00的最小需求数量,以此类推。一共有N个合格的申请人申请岗位,第 i 个申请人可以从titi时刻开始连续工作原创 2020-10-25 21:57:41 · 322 阅读 · 0 评论 -
AcWing 361 观光奶牛
题目描述:给定一张L个点、P条边的有向图,每个点都有一个权值f[i],每条边都有一个权值t[i]。求图中的一个环,使“环上各点的权值之和”除以“环上各边的权值之和”最大。输出这个最大值。注意:数据保证至少存在一个环。输入格式第一行包含两个整数L和P。接下来L行每行一个整数,表示f[i]。再接下来P行,每行三个整数a,b,t[i],表示点a和b之间存在一条边,边的权值为t[i]。输出格式输出一个数表示结果,保留两位小数。数据范围2≤L≤1000,2≤P≤500原创 2020-09-06 12:50:10 · 171 阅读 · 0 评论 -
AcWing 346 走廊泼水节
题目描述:给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树。求增加的边的权值总和最小是多少。注意:树中的所有边权均为整数,且新加的所有边权也必须为整数。输入格式第一行包含整数t,表示共有t组测试数据。对于每组测试数据,第一行包含整数N。接下来N-1行,每行三个整数X,Y,Z,表示X节点与Y节点之间存在一条边,长度为Z。输出格式每组数据输出一个整数,表示权值总和最小值。每个结果占一行。数据范围1≤N≤6000.原创 2020-08-23 16:18:46 · 147 阅读 · 0 评论 -
AcWing 345 牛站
题目描述:给定一张由T条边构成的无向图,点的编号为1~1000之间的整数。求从起点S到终点E恰好经过N条边(可以重复经过)的最短路。注意: 数据保证一定有解。输入格式第1行:包含四个整数N,T,S,E。第2..T+1行:每行包含三个整数,描述一条边的边长以及构成边的两个点的编号。输出格式输出一个整数,表示最短路的长度。数据范围2≤T≤100,2≤N≤10^6输入样例:2 6 6 411 4 64 4 88 4 96 6 82 6 93 8 9原创 2020-08-07 22:42:38 · 333 阅读 · 0 评论 -
AcWing 344 观光之旅
题目描述:给定一张无向图,求图中一个至少包含3个点的环,环上的节点不重复,并且环上的边的长度之和最小。该问题称为无向图的最小环问题。你需要输出最小环的方案,若最小环不唯一,输出任意一个均可。输入格式第一行包含两个整数N和M,表示无向图有N个点,M条边。接下来M行,每行包含三个整数u,v,l,表示点u和点v之间有一条边,边长为l。输出格式输出占一行,包含最小环的所有节点(按顺序输出),如果不存在则输出’No solution.’。数据范围1≤N≤100,1≤M≤100原创 2020-07-31 21:38:50 · 250 阅读 · 0 评论 -
AcWing 341 最优贸易
题目描述:C国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道路在统计条数时也计为1条。C国幅员辽阔,各地的资源分布情况各不相同,这就导致了同一种商品在不同城市的价格不一定相同。但是,同一种商品在同一个城市的买入价和卖出价始终是相同的。商人阿龙来到C国旅游。当他得知“同一种商品在不同城市的价格可能会不同”这一信息之后,便决定在旅游的同时原创 2020-06-13 23:03:54 · 367 阅读 · 1 评论 -
AcWing 340 通信线路
题目描述:在郊区有 N 座通信基站,P 条双向电缆,第 i 条电缆连接基站Ai和Bi。特别地,1 号基站是通信公司的总站,N 号基站位于一座农场中。现在,农场主希望对通信线路进行升级,其中升级第 i 条电缆需要花费Li。电话公司正在举行优惠活动。农产主可以指定一条从 1 号基站到 N 号基站的路径,并指定路径上不超过 K 条电缆,由电话公司免费提供升级服务。农场主只需要支付在该路径上剩余的电缆中,升级价格最贵的那条电缆的花费即可。求至少用多少钱可以完成升级。输入格式第..原创 2020-05-31 20:41:09 · 369 阅读 · 0 评论 -
AcWing 124 数的进制转换
题目描述:编写一个程序,可以实现将一个数字由一个进制转换为另一个进制。这里有62个不同数位{0-9,A-Z,a-z}。输入格式第一行输入一个整数,代表接下来的行数。接下来每一行都包含三个数字,首先是输入进制(十进制表示),然后是输出进制(十进制表示),最后是用输入进制表示的输入数字,数字之间用空格隔开。输入进制和输出进制都在2到62的范围之内。(在十进制下)A = 10,B = 11,...原创 2019-04-27 16:42:17 · 548 阅读 · 0 评论 -
AcWing 132 小组队列
题目描述:有n个小组要排成一个队列,每个小组中有若干人。当一个人来到队列时,如果队列中已经有了自己小组的成员,他就直接插队排在自己小组成员的后面,否则就站在队伍的最后面。请你编写一个程序,模拟这种小组队列。输入格式:输入将包含一个或多个测试用例。对于每个测试用例,第一行输入小组数量t。接下来t行,每行输入一个小组描述,第一个数表示这个小组的人数,接下来的数表示这个小组的人的编号。编号是...原创 2019-05-05 16:54:14 · 240 阅读 · 0 评论 -
AcWing 128 编辑器
题目描述:你将要实现一个功能强大的整数序列编辑器。在开始时,序列是空的。编辑器共有五种指令,如下:1、“I x”,在光标处插入数值x。2、“D”,将光标前面的第一个元素删除,如果前面没有元素,则忽略此操作。3、“L”,将光标向左移动,跳过一个元素,如果左边没有元素,则忽略此操作。4、“R”,将光标向右移动,跳过一个元素,如果右边没有元素,则忽略次操作。5、“Q k”,假设此刻光标之...原创 2019-04-28 21:07:05 · 211 阅读 · 0 评论 -
AcWing 131 直方图中最大的矩形
题目描述:直方图是由在公共基线处对齐的一系列矩形组成的多边形。矩形具有相等的宽度,但可以具有不同的高度。例如,图例左侧显示了由高度为2,1,4,5,1,3,3的矩形组成的直方图,矩形的宽度都为1:通常,直方图用于表示离散分布,例如,文本中字符的频率。现在,请你计算在公共基线处对齐的直方图中最大矩形的面积。图例右图显示了所描绘直方图的最大对齐矩形。输入格式输入包含几个测试...原创 2019-05-03 21:47:37 · 322 阅读 · 0 评论 -
AcWing 127 任务
题目描述:今天某公司有M个任务需要完成。每个任务都有相应的难度级别和完成任务所需时间。第i个任务的难度级别为yi,完成任务所需时间为xi分钟。如果公司完成此任务,他们将获得(500 * xi+ 2 * yi)美元收入。该公司有N台机器,每台机器都有最长工作时间和级别。如果任务所需时间超过机器的最长工作时间,则机器无法完成此任务。如果任务难度级别超过机器的级别,则机器无法完成次任务。每台机器一天...原创 2019-04-28 17:45:50 · 320 阅读 · 0 评论 -
AcWing 130 火车进出栈问题
题目描述:一列火车n节车厢,依次编号为1,2,3,…,n。每节车厢有两种运动方式,进栈与出栈,问n节车厢出栈的可能排列方式有多少种。输入格式输入一个整数n,代表火车的车厢数。输出格式输出一个整数s表示n节车厢出栈的可能排列方式数量。数据范围1≤n≤60000输入样例:3输出样例:5分析:与上一题不同的是,本题只需要输出栈混洗的合法方案个数...原创 2019-05-03 16:52:16 · 445 阅读 · 0 评论 -
AcWing 129 火车进栈
题目描述:这里有n列火车将要进站再出站,但是,每列火车只有1节,那就是车头。这n列火车按1到n的顺序从东方左转进站,这个车站是南北方向的,它虽然无限长,只可惜是一个死胡同,而且站台只有一条股道,火车只能倒着从西方出去,而且每列火车必须进站,先进后出。也就是说这个火车站其实就相当于一个栈,每次可以让右侧头火车进栈,或者让栈顶火车出站。车站示意如图: 出站<—...原创 2019-05-02 18:59:18 · 296 阅读 · 0 评论 -
AcWing 126 最大的和
题目描述:给定一个包含整数的二维矩阵,子矩形是位于整个阵列内的任何大小为1 * 1或更大的连续子阵列。矩形的总和是该矩形中所有元素的总和。在这个问题中,具有最大和的子矩形被称为最大子矩形。例如,下列数组:0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 其最大子矩形为:9 2 -4 1 -1 8 它拥有最大和15。输...原创 2019-04-27 19:48:18 · 149 阅读 · 0 评论 -
AcWing 125 耍杂技的牛
题目描述:农民约翰的N头奶牛(编号为1..N)计划逃跑并加入马戏团,为此它们决定练习表演杂技。奶牛们不是非常有创意,只提出了一个杂技表演:叠罗汉,表演时,奶牛们站在彼此的身上,形成一个高高的垂直堆叠。奶牛们正在试图找到自己在这个堆叠中应该所处的位置顺序。这N头奶牛中的每一头都有着自己的重量Wi以及自己的强壮程度Si。一头牛只撑不住的可能性取决于它头上所有牛的总重量(不包括它自己)减去它的身体强...原创 2019-04-27 17:09:08 · 380 阅读 · 0 评论 -
AcWing 134 双端队列
题目描述:达达现在碰到了一个棘手的问题,有N个整数需要排序。达达手头能用的工具就是若干个双端队列。她从1到N需要依次处理这N个数,对于每个数,达达能做以下两件事:1.新建一个双端队列,并将当前数作为这个队列中的唯一的数;2.将当前数放入已有的队列的头之前或者尾之后。对所有的数处理完成之后,达达将这些队列按一定的顺序连接起来后就可以得到一个非降的序列。请你求出最少需要多少个双...原创 2019-05-08 22:37:26 · 258 阅读 · 0 评论 -
AcWing 135 最大子序和
题目描述:输入一个长度为n的整数序列,从中找出一段长度不超过m的连续子序列,使得子序列中所有数的和最大。输入格式第一行输入两个整数n,m。第二行输入n个数,代表长度为n的整数序列。同一行数之间用空格隔开。输出格式输出一个整数,代表该序列的最大子序和。数据范围1≤n,m≤300000 1≤n,m≤300000输入样例:6 41 -3 5 1 -2 3...原创 2019-05-09 10:26:11 · 327 阅读 · 2 评论 -
AcWing 133 蚯蚓
题目描述:蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓。蛐蛐国里现在共有 n 只蚯蚓,第 i 只蚯蚓的长度为 ai,所有蚯蚓的长度都是非负整数,即可能存在长度为0的蚯蚓。每一秒,神刀手会在所有的蚯蚓中,准确地找到最长的那一只,将其切成两段。若有多只最长的,则任选一只。神刀手切开蚯蚓的位置由有理数 p 决定。一只长度为 x 的蚯蚓会被切成两只长度...原创 2019-05-06 22:00:10 · 347 阅读 · 0 评论 -
AcWing 97 约数之和
题目描述:假设现在有两个自然数A和B,S是A^B的所有约数之和。请你求出S mod 9901的值是多少。输入格式在一行中输入用空格隔开的两个整数A和B。输出格式输出一个整数,代表S mod 9901的值。数据范围0≤A,B≤5×1070≤A,B≤5×107输入样例:2 3输出样例:15注意: A和B不会同时为0。分析:公式推导:...原创 2019-02-09 13:36:09 · 266 阅读 · 0 评论 -
AcWing 143 最大异或对
题目描述:在给定的N个整数A1,A2……AN中选出两个进行xor(异或)运算,得到的结果最大是多少?输入格式第一行输入一个整数N。第二行输入N个整数A1~AN。输出格式输出一个整数表示答案。数据范围1≤N≤10^5,0≤Ai<2^31输入样例:31 2 3输出样例:3分析:本题要求我们从N个数中找出两个数来进行异或,并输出异或后...原创 2019-06-02 17:26:05 · 259 阅读 · 0 评论 -
AcWing 142 前缀统计
题目描述:给定N个字符串S1,S2…SN,接下来进行M次询问,每次询问给定一个字符串T,求S1~SN中有多少个字符串是T的前缀。输入字符串的总长度不超过106,仅包含小写字母。输入格式第一行输入两个整数N,M。接下来N行每行输入一个字符串Si。接下来M行每行一个字符串T用以询问。输出格式对于每个询问,输出一个整数表示答案。每个答案占一行。输入样例:3 2abbc...原创 2019-05-29 22:37:41 · 256 阅读 · 0 评论 -
AcWing 141 周期
题目描述:一个字符串的前缀是从第一个字符开始的连续若干个字符,例如”abaab”共有5个前缀,分别是a, ab, aba, abaa, abaab。我们希望知道一个N位字符串S的前缀是否具有循环节。换言之,对于每一个从头开始的长度为 i (i>1)的前缀,是否由重复出现的子串A组成,即 AAA…A (A重复出现K次,K>1)。如果存在,请找出最短的循环节对应的K值(也就是这个前缀串...原创 2019-05-26 18:32:05 · 152 阅读 · 0 评论 -
AcWing 137 雪花雪花雪花
题目描述:有N片雪花,每片雪花由六个角组成,每个角都有长度。第i片雪花六个角的长度从某个角开始顺时针依次记为ai,1,ai,2,…,ai,6。因为雪花的形状是封闭的环形,所以从任何一个角开始顺时针或逆时针往后记录长度,得到的六元组都代表形状相同的雪花。例如ai,1,ai,2,…,ai,6和ai,2,ai,3,…,ai,6,ai,1就是形状相同的雪花。ai,1,ai,2,…,ai,6和a...原创 2019-05-16 22:45:21 · 340 阅读 · 1 评论 -
AcWing 140 后缀数组
题目描述:后缀数组 (SA) 是一种重要的数据结构,通常使用倍增或者DC3算法实现,这超出了我们的讨论范围。在本题中,我们希望使用快排、Hash与二分实现一个简单的O(nlog^2n)的后缀数组求法。详细地说,给定一个长度为 n 的字符串S(下标 0~n-1),我们可以用整数 k(0≤k<n) 表示字符串S的后缀 S(k~n-1)。把字符串S的所有后缀按照字典序排列,排名为 ...原创 2019-05-25 20:19:27 · 272 阅读 · 0 评论 -
AcWing 136 邻值查找
题目描述:给定一个长度为 n 的序列 A,A 中的数各不相同。对于 A 中的每一个数 Ai,求:min1≤j<i|Ai−Aj|。以及令上式取到最小值的j(记为 Pi)。若最小值点不唯一,则选择使 Aj较小的那个。输入格式第一行输入整数n,代表序列长度。第二行输入n个整数A1…An,代表序列的具体数值,数值之间用空格隔开。输出格式输出共n-1行,每行输出两个整数,数值之间用...原创 2019-05-14 22:05:47 · 289 阅读 · 0 评论 -
AcWing 139 回文子串的最大长度
题目描述:如果一个字符串正着读和倒着读是一样的,则称它是回文的。给定一个长度为N的字符串S,求他的最长回文子串的长度是多少。输入格式输入将包含最多30个测试用例,每个测试用例占一行,以最多1000000个小写字符的形式给出。输入以一个以字符串“END”(不包括引号)开头的行表示输入终止。输出格式对于输入中的每个测试用例,输出测试用例编号和最大回文子串的长度(参考样例格式)。每个...原创 2019-05-19 22:45:36 · 383 阅读 · 2 评论 -
AcWing 138 兔子与兔子
题目描述:很久很久以前,森林里住着一群兔子。有一天,兔子们想要研究自己的 DNA 序列。我们首先选取一个好长好长的 DNA 序列(小兔子是外星生物,DNA 序列可能包含 26 个小写英文字母)。然后我们每次选择两个区间,询问如果用两个区间里的 DNA 序列分别生产出来两只兔子,这两个兔子是否一模一样。注意两个兔子一模一样只可能是他们的 DNA 序列一模一样。输入格式第一行输入一个 ...原创 2019-05-19 11:02:19 · 208 阅读 · 0 评论 -
AcWing 123 士兵
题目描述:格格兰郡的N名士兵随机散落在全郡各地。格格兰郡中的位置由一对(x,y)整数坐标表示。士兵可以进行移动,每次移动,一名士兵可以向上,向下,向左或向右移动一个单位(因此,他的x或y坐标也将加1或减1)。现在希望通过移动士兵,使得所有士兵彼此相邻的处于同一条水平线内,即所有士兵的y坐标相同并且x坐标相邻。请你计算满足要求的情况下,所有士兵的总移动次数最少是多少。需注意,两个或多个士兵不能占...原创 2019-04-22 23:00:21 · 286 阅读 · 0 评论 -
AcWing 122 糖果传递
题目描述:有n个小朋友坐成一圈,每人有a[i]个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。求使所有人获得均等糖果的最小代价。输入格式第一行输入一个正整数n,表示小朋友的个数。接下来n行,每行一个整数a[i],表示第i个小朋友初始得到的糖果的颗数。输出格式输出一个整数,表示最小代价。数据范围1≤n≤1000000输入样例:412...原创 2019-04-22 22:05:24 · 196 阅读 · 0 评论 -
AcWing 113 特殊排序
题目描述:有N个元素,编号1.2..N,每一对元素之间的大小关系是确定的,关系不具有传递性。也就是说,元素的大小关系是N个点与N*(N-1)/2条有向边构成的任意有向图。然而,这是一道交互式试题,这些关系不能一次性得知,你必须通过不超过10000次提问来获取信息,每次提问只能了解某两个元素之间的关系。现在请你把这N个元素排成一行,使得每个元素都小于右边与它相邻的元素。你可以通过我们预设的b...原创 2019-02-13 12:35:49 · 374 阅读 · 0 评论 -
AcWing 102 最佳牛围栏
题目描述:农夫约翰的农场由 N块田地组成,每块地里都有一定数量的牛,其数量不会少于1头,也不会超过2000头。约翰希望用围栏将一部分连续的田地围起来,并使得围起来的区域内每块地包含的牛的数量的平均值达到最大。围起区域内至少需要包含 F 块地,其中F会在输入中给出。在给定条件下,计算围起区域内每块地包含的牛的数量的平均值可能的最大值是多少。输入格式第一行输入整数 N 和 F,数据间用空格...原创 2019-02-12 18:08:28 · 579 阅读 · 0 评论 -
AcWing 101 最高的牛
题目描述:有 N头牛站成一行,被编队为1、2、3…N,每头牛的身高都为整数。当且仅当两头牛中间的牛身高都比它们矮时,两头牛方可看到对方。现在,我们只知道其中最高的牛是第 P 头,它的身高是 H,剩余牛的身高未知。但是,我们还知道这群牛之中存在着 M 对关系,每对关系都指明了某两头牛 A 和 B可以相互看见。求每头牛的身高的最大可能值是多少。输入格式第一行输入整数N,P,H,M,数据用空...原创 2019-02-11 20:20:17 · 902 阅读 · 0 评论 -
AcWing 100 IncDec序列
题目描述:给定一个长度为 n 的数列 a1,a2,…,an,每次可以选择一个区间 [l,r],使下标在这个区间内的数都加一或者都减一。求至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列可能有多少种。输入格式第一行输入正整数n。接下来n行,每行输入一个整数,第i+1行的整数代表ai。输出格式第一行输出最少操作次数。第二行输出最终能得到多少...原创 2019-02-11 17:36:54 · 486 阅读 · 1 评论 -
AcWing 104 货仓选址
题目描述:在一条数轴上有 N 家商店,它们的坐标分别为 A1~AN。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。输入格式第一行输入整数N。第二行N个整数A1~AN。输出格式输出一个整数,表示距离之和的最小值。数据范围1≤N≤100000输入样例:46 2 9 ...原创 2019-02-17 11:37:19 · 398 阅读 · 2 评论