算法提高复习
acwing算法提高
追寻远方的人
你的职责是平整土地,而非焦虑时光。
展开
-
113. 特殊排序
有 N 个元素,编号 1,2…N,每一对元素之间的大小关系是确定的,关系具有反对称性,但不具有传递性。:不存在两个元素大小相等的情况。也就是说,元素的大小关系是 N 个点与 N×(N−1)2 条有向边构成的任意有向图。然而,这是一道交互式试题,这些关系不能一次性得知,你必须通过不超过 10000 次提问来获取信息,每次提问只能了解某两个元素之间的关系。现在请你把这 N 个元素排成一行,使得每个元素都小于右边与它相邻的元素。原创 2023-05-29 21:26:55 · 226 阅读 · 1 评论 -
102. 最佳牛围栏
农夫约翰的农场由 N 块田地组成,每块地里都有一定数量的牛,其数量不会少于 1 头,也不会超过 2000 头。约翰希望用围栏将一部分连续的田地围起来,并使得围起来的区域内每块地包含的牛的数量的平均值达到最大。围起区域内至少需要包含 F 块地,其中 F 会在输入中给出。在给定条件下,计算围起区域内每块地包含的牛的数量的平均值可能的最大值是多少。原创 2023-05-29 21:26:16 · 267 阅读 · 0 评论 -
100. 增减序列
给定一个长度为 n 的数列 a1,a2,…,an,每次可以选择一个区间 [l,r],使下标在这个区间内的数都加一或者都减一。求至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列可能有多少种。原创 2023-05-29 21:24:18 · 211 阅读 · 0 评论 -
99. 激光炸弹
地图上有 N 个目标,用整数 Xi,Yi 表示目标在地图上的位置,每个目标都有一个价值 Wi。:不同目标可能在同一位置。现在有一种新型的激光炸弹,可以摧毁一个包含 R×R 个位置的正方形内的所有目标。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个正方形的边必须和 x,y 轴平行。求一颗炸弹最多能炸掉地图上总价值为多少的目标。原创 2023-05-29 21:24:18 · 143 阅读 · 0 评论 -
98. 分形之城
城市的规划在城市建设中是个大问题。不幸的是,很多城市在开始建设的时候并没有很好的规划,城市规模扩大之后规划不合理的问题就开始显现。而这座名为 Fractal 的城市设想了这样的一个规划方案,如下图所示:当城区规模扩大之后,Fractal 的解决方案是把和原来城区结构一样的区域按照图中的方式建设在城市周围,提升城市的等级。对于任意等级的城市,我们把正方形街区从左上角开始按照道路标号。原创 2023-05-29 21:23:31 · 78 阅读 · 0 评论 -
97. 约数之和
假设现在有两个自然数 A 和 B,S 是 AB 的所有约数之和。请你求出 Smod9901的值是多少。原创 2023-05-29 21:21:25 · 74 阅读 · 0 评论 -
95. 费解的开关
你玩过“拉灯”游戏吗?25 盏灯排成一个 5×5 的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字 11 表示一盏开着的灯,用数字 0 表示关着的灯。下面这种状态给定一些游戏的初始状态,编写程序判断游戏者是否可能在 6 步以内使所有的灯都变亮。原创 2023-05-29 21:21:09 · 76 阅读 · 0 评论 -
90. 64位整数乘法
求 a 乘 b 对 p取模的值。原创 2023-05-29 21:20:25 · 79 阅读 · 0 评论 -
1277. 维护序列
v老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成。有长为 N 的数列,不妨设为 a1,a2,…,aN。原创 2023-05-26 12:34:23 · 129 阅读 · 0 评论 -
247. 亚特兰蒂斯
有几个古希腊书籍中包含了对传说中的亚特兰蒂斯岛的描述。其中一些甚至包括岛屿部分地图。但不幸的是,这些地图描述了亚特兰蒂斯的不同区域。您的朋友 Bill 必须知道地图的总面积。你自告奋勇写了一个计算这个总面积的程序。原创 2023-05-26 12:34:52 · 137 阅读 · 0 评论 -
243. 一个简单的整数问题2
C l r dQ l r对于每个询问,输出一个整数表示答案。原创 2023-05-26 12:33:47 · 122 阅读 · 0 评论 -
246. 区间最大公约数
C l r dQ l r对于每个询问,输出一个整数表示答案。原创 2023-05-26 12:31:52 · 239 阅读 · 0 评论 -
245. 你能回答这些问题吗
1 x y2 x y对于每个查询指令,输出一个整数表示答案。原创 2023-05-26 12:31:50 · 73 阅读 · 0 评论 -
1275. 最大数
给定一个正整数数列 a1,a2,…,an,每一个数都在 0∼p−1之间。程序运行的最开始,整数序列为空。一共要对整数序列进行 m 次操作。写一个程序,读入操作的序列,并输出询问操作的答案。原创 2023-05-26 12:28:42 · 91 阅读 · 0 评论 -
244. 谜一样的牛
有 n 头奶牛,已知它们的身高为 1∼n 且各不相同,但不知道每头奶牛的具体身高。现在这 n 头奶牛站成一列,已知第 i 头牛前面有 Ai 头牛比它低,求每头奶牛的身高。原创 2023-05-21 16:56:09 · 70 阅读 · 0 评论 -
243. 一个简单的整数问题2
C l r dQ l r对于每个询问,输出一个整数表示答案。原创 2023-05-21 16:55:27 · 71 阅读 · 0 评论 -
242. 一个简单的整数问题
给定长度为 N 的数列 A,然后输入 M 行操作指令。第一类指令形如C l r d,表示把数列中第 l∼r 个数都加 d。第二类指令形如Q x,表示询问数列中第 x 个数的值。对于每个询问,输出一个整数表示答案。原创 2023-05-21 16:54:55 · 68 阅读 · 0 评论 -
241. 楼兰图腾
在完成了分配任务之后,西部 314 来到了楼兰古城的西部。相传很久以前这片土地上(比楼兰古城还早)生活着两个部落,一个部落崇拜尖刀(V),一个部落崇拜铁锹(∧),他们分别用V和∧的形状来代表各自部落的图腾。西部 314在楼兰古城的下面发现了一幅巨大的壁画,壁画上被标记出了 n 个点,经测量发现这 n 个点的水平位置和竖直位置是两两不同的。原创 2023-05-21 16:54:18 · 59 阅读 · 0 评论 -
239. 奇偶游戏
小 A 和小 B 在玩一个游戏。首先,小 A 写了一个由 0 和 1 组成的序列 S,长度为 N。然后,小 B 向小 A 提出了 M 个问题。在每个问题中,小 B 指定两个数 l 和 r,小 A 回答 S[l∼r] 中有奇数个 1 还是偶数个 1。机智的小 B 发现小 A 有可能在撒谎。例如,小 A 曾经回答过 S[1∼3] 中有奇数个 1,S[4∼6] 中有偶数个 1,现在又回答 S[1∼6] 中有偶数个 1,显然这是自相矛盾的。...原创 2022-08-30 22:25:19 · 1222 阅读 · 0 评论 -
238. 银河英雄传说
有一个划分为 N 列的星际战场,各列依次编号为 1,2,…,N。有 N 艘战舰,也依次编号为 1,2,…,N,其中第 i 号战舰处于第 i 列。有 T 条指令,每条指令格式为以下两种之一:M i j,表示让第 i 号战舰所在列的全部战舰保持原有顺序,接在第 j 号战舰所在列的尾部。C i j,表示询问第 i 号战舰与第 j 号战舰当前是否处于同一列中,如果在同一列中,它们之间间隔了多少艘战舰。现在需要你编写一个程序,处理一系列的指令。...原创 2022-08-30 22:22:41 · 136 阅读 · 0 评论 -
237. 程序自动分析
在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。考虑一个约束满足问题的简化版本:假设 x1,x2,x3,… 代表程序中出现的变量,给定 n 个形如 xi=xj 或 xi≠xj 的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件同时被满足。例如,一个问题中的约束条件为:x1=x2,x2=x3,x3=x4,x1≠x4,这些约束条件显然是不可能同时被满足的,因此这个问题应判定为不可被满足。现在给出一些约束满足问题,请分别对它们进行判定。...原创 2022-08-30 22:22:00 · 149 阅读 · 0 评论 -
1252. 搭配购买
Joe觉得云朵很美,决定去山上的商店买一些云朵。商店里有 n 朵云,云朵被编号为 1,2,…,n,并且每朵云都有一个价值。但是商店老板跟他说,一些云朵要搭配来买才好,所以买一朵云则与这朵云有搭配的云都要买。但是Joe的钱有限,所以他希望买的价值越多越好。...原创 2022-08-30 22:20:59 · 158 阅读 · 0 评论 -
1250. 格子游戏
Alice和Bob玩了一个古老的游戏:首先画一个 n×n 的点阵(下图 n=3 )。接着,他们两个轮流在相邻的点之间画上红边和蓝边:直到围成一个封闭的圈(面积不必为 1)为止,“封圈”的那个人就是赢家。因为棋盘实在是太大了,他们的游戏实在是太长了!他们甚至在游戏中都不知道谁赢得了游戏。于是请你写一个程序,帮助他们计算他们是否结束了游戏?...原创 2022-08-30 22:20:28 · 211 阅读 · 0 评论 -
456. 车站分级
一条单向的铁路线上,依次有编号为1,2,…,n的nn个火车站。每个火车站都有一个级别,最低为1级。现有若干趟车次在这条线路上行驶,每一趟都满足如下要求如果这趟车次停靠了火车站x,则始发站、终点站之间所有级别大于等于火车站x的都必须停靠。(注意起始站和终点站自然也算作事先已知需要停靠的站点)例如,下表是5趟车次的运行情况。其中,前4趟车次均满足要求,而第5趟车次由于停靠了3号火车站(2级)却未停靠途经的6号火车站(亦为2级)而不满足要求。...原创 2022-07-28 23:28:31 · 469 阅读 · 0 评论 -
164. 可达性统计
给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量。原创 2022-07-28 23:28:02 · 160 阅读 · 0 评论 -
1192. 奖金
由于无敌的凡凡在2005年世界英俊帅气男总决选中胜出,YaliCompany总经理Mr.Z心情好,决定给每位员工发奖金。公司决定以每个人本年在公司的贡献为标准来计算他们得到奖金的多少。于是Mr.Z下令召开m方会谈。每位参加会谈的代表提出了自己的意见“我认为员工a的奖金应该比b高!”Mr.Z决定要找出一种奖金方案,满足各位代表的意见,且同时使得总奖金数最少。每位员工奖金最少为100元,且必须是整数。...原创 2022-07-28 23:27:31 · 170 阅读 · 0 评论 -
1191. 家谱树
有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。给出每个人的孩子的信息。输出一个序列,使得每个人的孩子都比那个人后列出。原创 2022-07-28 23:26:56 · 201 阅读 · 0 评论 -
1124. 骑马修栅栏
农民John每年有很多栅栏要修理。他总是骑着马穿过每一个栅栏并修复它破损的地方。John是一个与其他农民一样懒的人。他讨厌骑马,因此从来不两次经过一个栅栏。你必须编一个程序,读入栅栏网络的描述,并计算出一条修栅栏的路径,使每个栅栏都恰好被经过一次。John能从任何一个顶点(即两个栅栏的交点)开始骑马,在任意一个顶点结束。每一个栅栏连接两个顶点,顶点用1到500标号(虽然有的农场并没有500个顶点)。一个顶点上可连接任意多(≥1)个栅栏。...原创 2022-07-28 23:26:24 · 141 阅读 · 0 评论 -
1184. 欧拉回路
给定一张图,请你找出欧拉回路,即在图中找一个环使得每条边都在环上出现恰好一次。原创 2022-07-28 23:25:53 · 183 阅读 · 0 评论 -
1123. 铲雪车
随着白天越来越短夜晚越来越长,我们不得不考虑铲雪问题了。整个城市所有的道路都是双向车道,道路的两个方向均需要铲雪。因为城市预算的削减,整个城市只有1辆铲雪车。铲雪车只能把它开过的地方(车道)的雪铲干净,无论哪儿有雪,铲雪车都得从停放的地方出发,游历整个城市的街道。现在的问题是最少要花多少时间去铲掉所有道路上的雪呢?...原创 2022-07-28 23:25:19 · 478 阅读 · 0 评论 -
379. 捉迷藏
Vani 和 cl2 在一片树林里捉迷藏。这片树林里有 N 座房子,M 条有向道路,组成了一张有向无环图。树林里的树非常茂密,足以遮挡视线,但是沿着道路望去,却是视野开阔。如果从房子 A 沿着路走下去能够到达 B,那么在 A 和 B 里的人是能够相互望见的。现在 cl2 要在这 N 座房子里选择 K 座作为藏身点,同时 Vani 也专挑 cl2 作为藏身点的房子进去寻找,为了避免被 Vani 看见,cl2 要求这 K 个藏身点的任意两个之间都没有路径相连。为了让 Vani 更难找到自己,cl2 想知道最多能原创 2022-06-24 06:35:14 · 139 阅读 · 0 评论 -
378. 骑士放置
给定一个 N×M 的棋盘,有一些格子禁止放棋子。问棋盘上最多能放多少个不能互相攻击的骑士(国际象棋的“骑士”,类似于中国象棋的“马”,按照“日”字攻击,但没有中国象棋“别马腿”的规则)。第一行包含三个整数 N,M,T,其中 T 表示禁止放置的格子的数量。接下来 T 行每行包含两个整数 x 和 y,表示位于第 x 行第 y 列的格子禁止放置,行列数从 1 开始。输出一个整数表示结果。1≤N,M≤100...原创 2022-06-24 06:34:41 · 140 阅读 · 0 评论 -
372. 棋盘覆盖
给定一个 N 行 N 列的棋盘,已知某些格子禁止放置。求最多能往棋盘上放多少块的长度为 2、宽度为 1 的骨牌,骨牌的边界与格线重合(骨牌占用两个格子),并且任意两张骨牌都不重叠。第一行包含两个整数 N 和 t,其中 t 为禁止放置的格子的数量。接下来 t 行每行包含两个整数 x 和 y,表示位于第 x 行第 y 列的格子禁止放置,行列数从 1 开始。输出一个整数,表示结果。1≤N≤100,0≤t≤100...原创 2022-06-24 06:33:39 · 166 阅读 · 0 评论 -
376. 机器任务
有两台机器 A,B 以及 K 个任务。机器 A 有 N 种不同的模式(模式 0∼N−1),机器 B 有 M 种不同的模式(模式 0∼M−1)。两台机器最开始都处于模式 0。每个任务既可以在 A 上执行,也可以在 B 上执行。对于每个任务 i,给定两个整数 a[i] 和 b[i],表示如果该任务在 A 上执行,需要设置模式为 a[i],如果在 B 上执行,需要模式为 b[i]。任务可以以任意顺序被执行,但每台机器转换一次模式就要重启一次。求怎样分配任务并合理安排顺序,能使机器重启次数最少。输入包含多组测试数据原创 2022-06-24 06:32:53 · 186 阅读 · 0 评论 -
257. 关押罪犯
S 城现有两座监狱,一共关押着 N 名罪犯,编号分别为 1∼N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为 c 的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为 c 的冲突事件。每年年末,警察局会将本年内监狱中的所有冲突事件按影响力从大到小排成一个列表,然后上报到 S 城 Z 市长那里。公务繁忙的 Z 市长只会去看列表中的第一个原创 2022-06-24 06:32:21 · 167 阅读 · 0 评论 -
396. 矿场搭建
煤矿工地可以看成是由隧道连接挖煤点组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有一条道路通向救援出口。请写一个程序,用来计算至少需要设置几个救援出口,以及不同最少救援出口的设置方案总数。输入文件有若干组数据,每组数据的第一行是一个正整数 N,表示工地的隧道数。接下来的 N 行每行是用空格隔开的两个整数 S 和 T,表示挖煤点 S 与挖煤点 T 由隧道直接连接。注意,每组数据的原创 2022-06-22 22:36:29 · 384 阅读 · 0 评论 -
1183. 电力
给定一个由 n 个点 m 条边构成的无向图,请你求出该图删除一个点之后,连通块最多有多少。输入包含多组数据。每组数据第一行包含两个整数 n,m。接下来 m 行,每行包含两个整数 a,b,表示 a,b 两点之间有边连接。数据保证无重边。点的编号从 0 到 n−1。读入以一行 0 0 结束。每组数据输出一个结果,占一行,表示连通块的最大数量。1≤n≤10000,0≤m≤15000,0≤a,b < n...原创 2022-06-22 22:35:58 · 91 阅读 · 0 评论 -
395. 冗余路径
为了从 F 个草场中的一个走到另一个,奶牛们有时不得不路过一些她们讨厌的可怕的树。奶牛们已经厌倦了被迫走某一条路,所以她们想建一些新路,使每一对草场之间都会至少有两条相互分离的路径,这样她们就有多一些选择。每对草场之间已经有至少一条路径。给出所有 R 条双向路的描述,每条路连接了两个不同的草场,请计算最少的新建道路的数量,路径由若干道路首尾相连而成。两条路径相互分离,是指两条路径没有一条重合的道路。但是,两条分离的路径上可以有一些相同的草场。对于同一对草场之间,可能已经有两条不同的道路,你也可以在它们之间再原创 2022-06-22 22:35:32 · 162 阅读 · 0 评论 -
368. 银河
银河中的恒星浩如烟海,但是我们只关注那些最亮的恒星。我们用一个正整数来表示恒星的亮度,数值越大则恒星就越亮,恒星的亮度最暗是 1。现在对于 N 颗我们关注的恒星,有 M 对亮度之间的相对关系已经判明。你的任务就是求出这 N 颗恒星的亮度值总和至少有多大。第一行给出两个整数 N 和 M。之后 M 行,每行三个整数 T,A,B,表示一对恒星 (A,B) 之间的亮度关系。恒星的编号从 1 开始。如果 T=1,说明 A 和 B 亮度相等。如果 T=2,说明 A 的亮度小于 B 的亮度。如果 T=3,说明 A 的原创 2022-06-20 18:43:31 · 138 阅读 · 0 评论 -
1175. 最大半连通子图
一个有向图 G=(V,E) 称为半连通的 (Semi-Connected),如果满足:∀u,v∈V,满足 u→v 或 v→u,即对于图中任意两点 u,v,存在一条 u 到 v 的有向路径或者从 v 到 u 的有向路径。若 G′=(V′,E′) 满足,E′ 是 E 中所有和 V′ 有关的边,则称 G′ 是 G 的一个导出子图。若 G′ 是 G 的导出子图,且 G′ 半连通,则称 G′ 为 G 的半连通子图。若 G′ 是 G 所有半连通子图中包含节点数最多的,则称 G′ 是 G 的最大半连通子图。给定一个有向图原创 2022-06-20 18:42:51 · 204 阅读 · 0 评论