
训练指南
训练指南
kgduu
这个作者很懒,什么都没留下…
展开
-
UVa11478 Halum(BellmanFord)
给定一个n个点,m条边的有向图,每条边有一个权值。每次选择一个结点v和一个整数d,把以v为终点的边的权值减d,把以v为起点的边的权值加d,最后要求所有边的权值的最小值非负且最大。原创 2023-12-03 23:26:55 · 140 阅读 · 0 评论 -
UVa11090 Going in Cycle!!(BellmanFord)
给定一个包含n个顶点,m条边的加权有向图,求平均权值最小的回路。原创 2023-11-12 21:33:08 · 186 阅读 · 0 评论 -
UVa12661 Funny Car Racing(Dijkstra)
给定n个点,m条边,起始点s,目标点t,求从起点s到终点t的最短距离。已经道路上的边e是每隔ea秒开启,再隔eb秒关闭,通过时间为et。原创 2023-11-05 11:01:16 · 188 阅读 · 0 评论 -
UVa1078 Steam Roller(Dijkstra)
给出一个图,边值不等于0的表示通过这条路所需要的时间,有如下一些约束问从起点到终点所需要的最短时间。原创 2023-10-29 22:47:57 · 209 阅读 · 0 评论 -
UVa658 It’s not a Bug, it’s a Feature!(Dijkstra)
给出一个包含n个bug的应用程序,以及m个补丁,每个补丁使用两个字符串表示,第一个串表示补丁针对bug的情况,即哪些bug存在,以及哪些bug不存在,第二个串表示补丁对bug的修复情况,即修复了哪些bug,以及引入哪些bug。补丁还包含修复的时间。问修复这些bug所需要的最短时间。原创 2023-10-15 22:16:42 · 613 阅读 · 0 评论 -
UVa10537 The Toll! Revisited(Dijkstra)
在无向图中,经过结点时,需要交纳入口通行费,如果结点类型为城镇,需要交纳n/20个物品,如果结点类型为乡村时,只要交纳1个物品,问从起点到终点, 至少需要带多少个物品。原创 2023-09-24 22:57:29 · 249 阅读 · 0 评论 -
UVa1416 Warfare And Logistics(Dijkstra)
给出包含n个结点,m条边的无向图,每条边上有一个正权,求每对结点的最短路径之和,以及去掉一条边后,要求每对结点的最短路径之和最大。原创 2023-09-17 16:27:30 · 134 阅读 · 0 评论 -
UVa11374 Airport Express(Dijkstra)
思路:如果选择商业路线为从u到v,则需要从s->u,u->v,v->e点的路径最短。使用Dijkstra计算出从s点到其它各点,以及从e点到其它各点的最短路径,然后遍历商业路线u,v,选取从s->u,u->v,v->e点中路线最短的。题意:给出经济路线以及商业路线,在给出起始点s,终止点e,在只能使用其中一个商业路线 的情况下输出最短路径。原创 2023-09-03 14:04:01 · 316 阅读 · 0 评论 -
UVa10048 Audiophobia(floyd)
给出一个图,图中的边表示从点u到点v路径上的噪音。给出q个查询,问从u到v所经路径上的最小噪音。原创 2023-08-19 21:49:36 · 386 阅读 · 0 评论 -
UVa247 Calling Circles(Floyd warshall算法)
给定两个人相互打电话,如果a打给b,b打给c,c打给a,则说a,b,c在同一电话圈中。给出n个人的m次通话,输出所有的电话圈。原创 2023-08-19 16:27:53 · 1272 阅读 · 0 评论 -
UVa11987 Almost Union-Find(带删除操作的并查集)
UVa11987 Almost Union-Find(并查集)原创 2023-04-09 18:57:36 · 449 阅读 · 0 评论 -
UVa12232 Exclusive-OR(加权并查集)
UVa12232 Exclusive-OR(加权并查集)原创 2023-04-05 15:56:28 · 233 阅读 · 0 评论 -
UVa11136 Hoax or what(multiset)
有n组数字序列,每次从一组序列中取出最大值,最小值,累加最大值与最小值的差,同时该组的剩下的数归入下一组序列,问最后累加和。原创 2023-03-30 21:02:40 · 167 阅读 · 0 评论 -
UVa11988Broken Keyboard (a.k.a. Beiju Text)(链表)
UVa11988Broken Keyboard (a.k.a. Beiju Text)原创 2023-03-25 17:36:39 · 181 阅读 · 0 评论 -
UVa1329 Corporative Network(并查集)
UVa1329 Corporative Network(并查集)原创 2023-03-19 12:40:08 · 169 阅读 · 0 评论 -
UVa1160 X-Plosives(并查集)
UVa1160 X-Plosives(并查集)原创 2023-03-19 11:44:10 · 155 阅读 · 0 评论 -
UVa11997 K Smallest Sums(优先级队列)
UVa11997 K Smallest Sums(优先级队列)原创 2022-09-20 21:09:30 · 143 阅读 · 0 评论 -
UVa1203 Argus(优先级队列)
1203 Argus(优先级队列)原创 2022-09-02 22:39:01 · 199 阅读 · 0 评论 -
UVa11991 Easy Problem from Rujia Liu
HashMap的使用原创 2022-06-11 16:48:31 · 165 阅读 · 0 评论 -
训练指南第三部分解题报告
11995 I Can Guess the Data Structure(stack,queue,priorityqueue结构判定)原创 2022-05-15 12:26:58 · 147 阅读 · 0 评论 -
UVa11995 I Can Guess the Data Structure
根据两种操作,操作1是将数据放入此数据结构中,操作2时从该数据结构中取出数据。判断此数据类型是栈、队列还是优先级队列。注意:取出数据时是不会出错,表示如果在此数据结构没有元素,从中取出元素时,认为该数据结构不属于上述三种类型中的任意一个。代码参考:OJ/UVa/11995 I Can Guess the Data Structure! at master · wuli2496/OJ · GitHub...原创 2022-05-15 12:21:27 · 184 阅读 · 0 评论 -
UVa1374 Power Calculus(IDDFS)
思路:使用IDDFS算法,在递归时,使用剪枝,根据当前的最大值以及当前递归深度,用当前最大值乘以(1<<最大深度-当前深度),看是否小于要求的正整数。具体代码参考:https://github.com/wuli2496/OJ/blob/master/UVa/1374%20Power%20Calculus/Power%20Calculus(IDDFS).cpp...原创 2021-10-12 22:20:24 · 249 阅读 · 0 评论 -
UVa1354 Mobile Computing
思路:根据集合枚举可能的左集合与右集合,计算左右边的a,b,然后递归计算左子树及右子树的长度。左边的长度为a+左子树的左长度,右子树的左长度-b之间的最大值右边的长度为b+右子树的右长度,左子树的右长度- a之间的最大值。具体代码参考:OJ/1354 Mobile Computing.cpp at master · wuli2496/OJ · GitHub...原创 2021-10-12 21:13:28 · 151 阅读 · 0 评论 -
UVa10639 Square Puzzle(WA)
代码参考:https://github.com/wuli2496/OJ/blob/master/UVa/10639%20-%20Square%20Puzzle/Square%20Puzzle.cpp原创 2021-08-23 20:48:33 · 332 阅读 · 0 评论 -
UVa1491 - Compress the String(dfs)
问题:给出短字符串个数n,每个短字符串的长度上限L(1),L(2),...,L(n),一个长字符串s,问长字符串s是否可以压缩成n个字符串。思路:使用dfs,首先枚举当前字符串片段的长度,在确定了字符串片段长度后,枚举字符串片段的值,因为在填充数字时,要求只能是当前字符串后面的字符串片段索引。在确定了字符串填充后,看压缩后的字符串长度是否与原来字符串相等。具体代码参考:https://github.com/wuli2496/OJ/tree/master/UVa/1491%20Compress%2原创 2020-08-16 21:28:29 · 267 阅读 · 0 评论 -
UVa10825 Anagram and Multiplication(dfs)
问题:一个n进制m位的数,在分别乘以2,3,...,m后得到的数是原数的一个排列,要求输出这样的数。其中3<=m<=6,4<=n<=100.思路:如果尾数是0,显示不能满足条件。枚举尾数1-(n-1),分别乘以2,3,...,m对n取模得到的数是原数的其中一位数,然后枚举全排列,看是否满足条件。具体代码参考:https://github.com/wuli2496...原创 2020-02-14 15:35:30 · 220 阅读 · 0 评论 -
UVa12326 Yummy Triangular Pizza(dfs)
问题:用n个等边三角形可以拼成多少种不同样式的形状。等边三角形之间共用一条边。旋转或者平移后重合视为一种。思路:关键是要唯一确定等边三角形,基于此建立特殊的坐标系。正立三角形x+y+z=0,倒立三角形x+y+z不等于0以正立三角形(0,0,0)开始来添加三角形,在添加三角形后,将其转换为原点位置后,旋转看是否重复。使用深度优先搜索算法会超时,先使用深度优先搜索计算1-16的解,然后建表...原创 2020-02-09 10:27:18 · 514 阅读 · 0 评论 -
UVa1377 Ruler(dfs或者bfs)
问题:要求尺子可以测量给定的长度,并且要求刻度尽量少,长度尽量短思路:采用广度优先搜索,初始状态中的刻度集合中只包含0,扩展新的状态时,有两种方式 ,一种是在当前的集合刻度上加上没有重复的长度,要求加后的长度不能超过最大值。另外一种方式是用当前的集合刻度减去没有重复的长度。使用深度优先搜索方法时,先计算出可行的状态集合。在可行的状态集合中作选择。因为要求长度尽量短,所以可行的状态集合中包含...原创 2020-02-05 14:34:40 · 311 阅读 · 0 评论 -
UVa1421 - Archery
问题:有n个线段,每个线段用(d,l,r)表示,其中d表示纵坐标,l,r表示线段的最左和最右的横坐标。射箭人员在x轴的[0,w]范围内,问是否可以将 n个线程覆盖到思路:1、枚举法,枚举覆盖任意两个线段时与 x轴相交时的最左位置和最右位置,看是否有公共交集具体代码参考:https://github.com/wuli2496/OJ/tree/master/UVa/1421%20Arche...原创 2019-12-22 17:11:15 · 318 阅读 · 0 评论 -
LA4238 Area of Polycubes(立方体的表面积)
问题:给出 n个三维立方体,要求立文体之间接触时,有一个公共面。如果不满足条件,输出不满足条件的立方体的序列号。满足条件时,求这些立方体的构成的表面积思路:将当前的立方体与前面的立方体比较,计算两者之间的距离,如果为1,说明两个之间是有公共面,同时将总面积减2。对于重合的也视为不满足条件。具体代码参考:https://github.com/wuli2496/OJ/tree/master/U...原创 2019-12-14 17:58:39 · 260 阅读 · 0 评论 -
LA4234 Binary Clock(进制转换)
问题:给出一个由传统的6分仪表示的二进制时针时间,问其二进制表示形式。要求输出竖起和水平两种表示形式思路:主要是将数值转换为二进制具体代码参考:https://github.com/wuli2496/OJ/tree/master/UVa/LA4234%20Binary%20Clock...原创 2019-12-14 16:12:25 · 478 阅读 · 0 评论 -
UVa1153 Keep The Customer Satisfied(贪心)
问题:有 n个订单,每个订单有两个属性,数量 q吨和交付时间d,其中每生产一吨铁需要1个单位时间。要求拒绝的订单数最少。思路:对于两个订单(qa,da),(qb,db),如果qa>qb,da<db时,订单(qa,da)是可以接受的,则订单(qb,db)也是可以接受的。将订单根据交付时间从小到大排列,使用优先级队列,如果加上当前订单的时间后小于交付时间,则将当前订单放入集合中(优先级...原创 2019-12-11 23:36:00 · 255 阅读 · 0 评论 -
UVa1316 Supermarket(贪心)
问题:超市里有 n个商品出售,每个商品如果在d截止时间内出售,可以获取利润p。每个商品出售需要一个时间单位。问最大利润是多少?思路:第一种方法是根据截止时间升序排列,同时依赖优先级队列,当商品的截止时间小于队列的大小时,将其放入队列。否则将当前商品的利润与队列中的最小值作比较,如果大于队列中的最小值则替换第二种方法是根据截止时间降序排列,将商品截止时间大于当前的时间放入队列,放完后,取...原创 2019-12-08 21:39:50 · 419 阅读 · 0 评论 -
UVa1418 - WonderTeam(构造法)
题意:有n个球队,每个球队之间打两场。赢一场得3分,平得1分,输不得分。分数为p的球队排名为1+分数比p大的球个数。要求选取一个梦之队,赢的场数最多,进球数最多,丢球最少。问梦之队的最糟排名。思路:因为进球数,丢球数无限制,主要考虑赢的场数。每个队总共会打2n-2场比赛。如果wonderTeam只赢一场,其它都是平局,显然梦之队是第一名。梦之队赢2场,其它只赢1场(赢的是梦之队)梦之队:赢...原创 2019-11-16 10:37:21 · 709 阅读 · 0 评论 -
UVa11389 The Bus Driver Problem(贪心)
问题:市中有n个司机,有n个早班路线和晚班路线。每个司机分配一个早班和晚班路线,如果一个司机的总行程路线超过d,超过的部分按每小时r元计算。问最小的加班费多少。思路:贪心算法。先以两个情况为例。早班路线用m1,m2表示,晚班路线用a1,a2表示。分别从小到大排列。1、m1+a1,m2+a2小于d,此时任意安排都可以2、m1+a1,m2+a2都大于d,此时任意安排都可以。3、m1...原创 2019-11-08 22:45:57 · 403 阅读 · 0 评论 -
UVa1344 - Tian Ji -- The Horse Racing(贪心)
问题:田忌和国王都有n匹马,比赛n场。赢一场得200个银币,平局不得也不失,输失去200个银币。部田忌最多可以赢多少个银币?思路:贪心算法。将田忌和国王的n匹马分别按马速从小到大排列。贪心策略如下:1、如果田忌当前的最慢的马比国王的最慢的马快就比赛。2、如果田忌当前的最快的马比国王的最快的马快则比赛。3、否则将田忌的最慢的马与国王的最快的马比。具体代码参考:https://...原创 2019-11-03 16:33:42 · 239 阅读 · 1 评论 -
UVa1467 Installations(贪心)
问题:已经n安装任务,知道每个任务完成所需时间serveTime及截止时间deadline,任务的惩罚时间定义为完成时间减去截止时间,要求最大惩罚时间和次在惩罚时间之和最小。思路:使用贪心算法,将n个任务按照截止时间从小到大排列,如果截止时间相同,根据任务完成所需时间排列。此时的最大惩罚时间最小。此时最大处罚时间和次大处罚时间之和可能不时最大。在排序后,记录下此时的前两个最大的位置,记为p1,...原创 2019-11-03 16:18:07 · 311 阅读 · 0 评论 -
UVa1450 Airport(二分法)
问题:有个机场,有两个进站口,一个出站口。分别对两个进站口的飞机从0开始编号。每次只能从其中选取一个飞机起飞,要求飞机的编号最小。思路:二分法。在对编号检查时,需要满足几个约束条件。1、两个站总共需要飞走的飞机数要小于已经飞走的飞机数2、每个站需要飞走的飞机数要小于允许飞走的飞机数。具体代码参考:https://github.com/wuli2496/OJ/tree/maste...原创 2019-10-20 21:39:18 · 302 阅读 · 0 评论 -
UVa11100 The Trip,2007(贪心)
问题:给出n个包裹,小包裹可以放到大包裹里,问最小的包裹数,并且输出包裹里所包含的包裹思路:包裹从小到大排序,统计尺寸包裹的个数,求得最大值。这个最大值就是最终的最小包裹数。具体代码参考:https://github.com/wuli2496/OJ/tree/master/UVa/11100%20The%20Trip%2C2007...原创 2019-10-13 21:48:49 · 338 阅读 · 0 评论 -
UVa11134 Fabled Rooks(贪心算法)
问题:在n*n的棋盘中,放置n个车,要求对应的车在规定的矩形区间范围内,并且n个车不在同一行或者列上。思路:从x,y方向上分别确认n个车的位置,以x方向为例。根据区间的右端从小到大排列。然后在对车遂个遍历时,根据规定的区间来选择,如果已经被占了,选取下一个可行的。具体代码参考:https://github.com/wuli2496/OJ/tree/master/UVa/11134%...原创 2019-10-13 18:57:45 · 283 阅读 · 0 评论