自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 BFS(双端队列+状态压缩) - 拯救大兵瑞恩 - HDU 4845

BFS(双端队列+状态压缩) - 拯救大兵瑞恩 - HDU 4845题意:给定n×m的迷宫,起点在左上角(1,1),终点在右下角(n,m)。给定n×m的迷宫,起点在左上角(1,1),终点在右下角(n,m)。给定n×m的迷宫,起点在左上角(1,1),终点在右下角(n,m)。两个点之间有三种连通方式:墙(不连通),门(需要钥匙才能通过),直接连通。两个点之间有三种连通方式:墙(不连通),门(需要钥匙才能通过),直接连通。两个点之间有三种连通方式:墙(不连通),门(需要钥匙才能通过),直接连通。首行输入三

2020-06-30 18:01:02 377 1

原创 BFS - 最短路计数 - 洛谷 P1144

BFS - 最短路计数 - 洛谷 P1144给出一个 N 个顶点 M 条边的无向无权图,顶点编号为 1 到 N。问从顶点 1 开始,到其他每个点的最短路有几条。输入格式第一行包含 2 个正整数 N,M,为图的顶点数与边数。接下来 M 行,每行两个正整数 x,y,表示有一条顶点 x 连向顶点 y 的边,请注意可能有自环与重边。输出格式输出 N 行,每行一个非负整数,第 i 行输出从顶点 1 到顶点 i 有多少条不同的最短路,由于答案有可能会很大,你只需要输出对 100003 取模后的结果即可。

2020-06-30 17:20:58 364

原创 DIJ(拆点+最短路条数) - 观光 - AcWing 383

DIJ(拆点+最短路条数) - 观光 - AcWing 383“您的个人假期”旅行社组织了一次比荷卢经济联盟的巴士之旅。比荷卢经济联盟有很多公交线路。每天公共汽车都会从一座城市开往另一座城市。沿途汽车可能会在一些城市(零或更多)停靠。旅行社计划旅途从 S 城市出发,到 F 城市结束。由于不同旅客的景点偏好不同,所以为了迎合更多旅客,旅行社将为客户提供多种不同线路。游客可以选择的行进路线有所限制,要么满足所选路线总路程为 S 到 F 的最小路程,要么满足所选路线总路程仅比最小路程多一个单位长度。

2020-06-30 16:46:55 234

原创 DIJ(多源最短路 - 虚拟源点) - Choose the best route - HDU 2680

DIJ(多源最短路 - 虚拟源点) - Choose the best route - HDU 2680题意:题意:题意:首行输入三个整数n,m,T,分别表示点的数量,边的数量,以及终点编号。首行输入三个整数n,m,T,分别表示点的数量,边的数量,以及终点编号。首行输入三个整数n,m,T,分别表示点的数量,边的数量,以及终点编号。接着输入m行数据,每组包括起点u,终点v,以及权重w,表示从u到v的有向边。接着输入m行数据,每组包括起点u,终点v,以及权重w,表示从u到v的有向边。接着输入m行数据,每组

2020-06-30 16:10:15 509

原创 SPFA - NOIP 2009 最优贸易 - 洛谷 P1073

SPFA - NOIP 2009 最优贸易 - 洛谷 P1073C国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道路在统计条数时也计为1条。C国幅员辽阔,各地的资源分布情况各不相同,这就导致了同一种商品在不同城市的价格不一定相同。但是,同一种商品在同一个城市的买入价和卖出价始终是相同的。商人阿龙来到C国旅游。当他得知“同一种商品在不同城市的价格可能

2020-06-28 14:58:06 210

原创 DIJ + Topsort + DFS - Roads and Planes G(道路与航线) - 洛谷 P3008

DIJ + Topsort + DFS - Roads and Planes G(道路与航线) - 洛谷 P3008农夫约翰正在一个新的销售区域对他的牛奶销售方案进行调查。他想把牛奶送到T个城镇,编号为1~T。这些城镇之间通过R条道路 (编号为1到R) 和P条航线 (编号为1到P) 连接。每条道路 i 或者航线 i 连接城镇Ai到Bi,花费为Ci。对于道路,0≤Ci≤10,000;然而航线的花费很神奇,花费Ci可能是负数(−10,000≤Ci≤10,000)。道路是双向的,可以从Ai到Bi,也可

2020-06-28 14:10:06 222

原创 BFS(双端队列) + 二分 - Telephone Lines - POJ 3662

BFS(双端队列) - Telephone Lines - POJ 3662在郊区有 N 座通信基站,P 条 双向 电缆,第 i 条电缆连接基站Ai和Bi。特别地,1 号基站是通信公司的总站,N 号基站位于一座农场中。现在,农场主希望对通信线路进行升级,其中升级第 i 条电缆需要花费Li。电话公司正在举行优惠活动。农产主可以指定一条从 1 号基站到 N 号基站的路径,并指定路径上不超过 K 条电缆,由电话公司免费提供升级服务。农场主只需要支付在该路径上剩余的电缆中,升级价格最贵的那条电缆的花费即

2020-06-28 13:11:15 207

原创 DIJ + DFS - CQOI 2005 新年好 - AcWing 1135

DIJ + DFS - CQOI 2005 新年好 - AcWing 1135重庆城里有 n 个车站,m 条 双向 公路连接其中的某些车站。每两个车站最多用一条公路连接,从任何一个车站出发都可以经过一条或者多条公路到达其他车站,但不同的路径需要花费的时间可能不同。在一条路径上花费的时间等于路径上所有公路需要的时间之和。佳佳的家在车站 1,他有五个亲戚,分别住在车站 a,b,c,d,e。过年了,他需要从自己的家出发,拜访每个亲戚(顺序任意),给他们送去节日的祝福。怎样走,才需要最少的时间?输入格

2020-06-27 23:48:47 177

原创 DIJ - 昂贵的聘礼 - POJ 1062

DIJ - 昂贵的聘礼 - POJ 1062题意:首行输入等级限制m,以及物品数量n。首行输入等级限制m,以及物品数量n。首行输入等级限制m,以及物品数量n。接着输入n组数据,每组包括非负整数P,L,X(X<n),接着输入n组数据,每组包括非负整数P,L,X(X<n),接着输入n组数据,每组包括非负整数P,L,X(X<n),分别代表每件物品的价格P,级别L,和该物品的补充物品的数量X。分别代表每件物品的价格P,级别L,和该物品的补充物品的数量X。分别代表每件物品的价格P,级别L,和

2020-06-25 12:41:52 180

原创 bfs(最少换乘次数) - NOI1997 最优乘车 - 洛谷 P5767

bfs(最少换乘次数) - NOI1997 最优乘车 - 洛谷 P5767H城是一个旅游胜地,每年都有成千上万的人前来观光。为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴士线路。每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终到达终点巴士站。一名旅客最近到H城旅游,他很想去S公园游玩,但如果从他所在的饭店没有一路巴士可以直接到达S公园,则他可能要先乘某一路巴士坐几站,再下来换乘同一站台的另一路巴士, 这样换乘几次后到达S公园。现在用整数1,2,…N

2020-06-25 11:14:12 1193

原创 DIJ - 最小花费 - 洛谷 P1576

DIJ - 最小花费 - 洛谷 P1576在 n 个人中,某些人的银行账号之间可以互相转账。这些人之间转账的手续费各不相同。给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问 A 最少需要多少钱使得转账后 B 收到 100 元。输入格式第一行输入两个正整数 n,m,分别表示总人数和可以互相转账的人的对数。以下 m 行每行输入三个正整数 x,y,z,表示标号为 x 的人和标号为 y 的人之间互相转账需要扣除 z 的手续费 ( z<100 )。最后一行输入两个正整数 A,B。

2020-06-25 10:53:33 235

原创 SPFA - 香甜的黄油 Sweet Butter - 洛谷 P1828

SPFA - 香甜的黄油 Sweet Butter - 洛谷 P1828农夫John发现了做出全威斯康辛州最甜的黄油的方法:糖。把糖放在一片牧场上,他知道 N 只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。当然,他将付出额外的费用在奶牛上。农夫John很狡猾,就像以前的巴甫洛夫,他知道他可以训练这些奶牛,让它们在听到铃声时去一个特定的牧场。他打算将糖放在那里然后下午发出铃声,以至他可以在晚上挤奶。农夫John知道每只奶牛都在各自喜欢的牧场(一个牧场不一定只有一头牛)。给出各头牛在的牧场和

2020-06-24 22:38:05 274

原创 Floyed - 信使 - AcWing 1128

Floyed - 信使 - AcWing 1128战争时期,前线有 n 个哨所,每个哨所可能会与其他若干个哨所之间有通信联系。信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单位)。指挥部设在第一个哨所。当指挥部下达一个命令后,指挥部就派出若干个信使向与指挥部相连的哨所送信。当一个哨所接到信后,这个哨所内的信使们也以同样的方式向其他哨所送信。信在一个哨所内停留的时间可以忽略不计。直至所有 n 个哨所全部接到命令后,送信才算成功。因为准备充足,每个哨所内都安排了足够的信使(如果一个

2020-06-24 22:24:00 270

原创 DIJ - Heat Wave G(热浪) - 洛谷 P1339

DIJ - Heat Wave G - 洛谷 P1339题目描述有一个 n 个点 m 条边的无向图,请求出从 s 到 t 的最短路长度。输入格式第一行四个正整数 n,m,s,t。 接下来 m 行,每行三个正整数 u,v,w表示一条连接 u,v 长为 w 的边。输出格式输出一行一个整数,表示答案。输入输出样例输入7 11 5 42 4 21 4 37 2 23 4 35 7 57 3 36 1 16 3 42 4 35 6 37 2 1输出7说明/提示【数据

2020-06-24 22:03:38 306

原创 线段树 - AHOI 2009 维护序列 - Gym 237040G

线段树 - AHOI 2009 维护序列 - Gym 237040G老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成。有长为 n 的数列,不妨设为 a1,a2,⋯,an。有如下三种操作形式:把数列中的一段数全部乘一个值;把数列中的一段数全部加一个值;询问数列中的一段数的和,由于答案可能很大,你只需输出这个数模 P 的值。第一行两个整数 n 和 P;第二行含有 n 个非负整数,从左到右依次为 a1,a2,⋯,an;第三行有一个整数 M,表示操作总数;从第四行开始每行描述一个操作,

2020-06-22 21:38:11 198

原创 线段树 - A Simple Problem with Integers - POJ - 3468

线段树 - A Simple Problem with Integers - POJ - 3468题意:给定长度为N的序列A1,A2,...,AN,共有两种操作:给定长度为N的序列A_1,A_2,...,A_N,共有两种操作:给定长度为N的序列A1​,A2​,...,AN​,共有两种操作:1、“C l r d”,表示把A[l],A[l+1],…,A[r]都加上d。1、“C \ l\ r\ d”,表示把 A[l],A[l+1],…,A[r] 都加上 d。1、“C&nbs

2020-06-22 19:00:09 161

原创 线段树 - Interval GCD(区间最大公约数) - AcWing 246

线段树 - Interval GCD(区间最大公约数) - AcWing 246给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:1、“C l r d”,表示把 A[l],A[l+1],…,A[r] 都加上 d。2、“Q l r”,表示询问 A[l],A[l+1],…,A[r] 的最大公约数(GCD)。对于每个询问,输出一个整数表示答案。输入格式第一行两个整数N,M。第二行N个整数A[i]。接下来M行表示M条指令,每条指令的格式如题目描述所示。输出格式对于每个询问,输出

2020-06-19 23:58:25 1040

原创 线段树 - Can you answer these queries III - SPOJ - GSS3

线段树 - Can you answer these queries III - SPOJ - GSS3给定长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:1、“1 x y”,查询区间 [x,y] 中的最大连续子段和,即 maxx≤l≤r≤y∑i=lrA[i]max_{x≤l≤r≤y}{∑^r_{i=l}A[i]}maxx≤l≤r≤y​∑i=lr​A[i]。2、“0 x y”,把 A[x] 改成 y。对于每个查询指令,输出一个整数表示答案。输入格式第一行两个整数N,M。第二行N个整

2020-06-19 21:41:27 145

原创 线段树 - JSOI 2008 最大数 - 洛谷 P1198

线段树 - JSOI 2008 最大数 - 洛谷 P1198给定一个正整数数列 a1,a2,…,an,每一个数都在 0∼p−1 之间。可以对这列数进行两种操作:1、添加操作:向序列后添加一个数,序列长度变成 n+1;2、询问操作:询问这个序列中最后 L 个数中最大的数是多少。程序运行的最开始,整数序列为空。写一个程序,读入操作的序列,并输出询问操作的答案。输入格式第一行有两个正整数 m,p,意义如题目描述;接下来 m 行,每一行表示一个操作。如果该行的内容是 Q L,则表示这个操作是询问

2020-06-19 19:35:01 217

原创 并查集 - NOI 2002 银河英雄传说 - 洛谷 P1196

并查集 - NOI 2002 银河英雄传说 - 洛谷 P1196有一个划分为N列的星际战场,各列依次编号为1,2,…,N。有N艘战舰,也依次编号为1,2,…,N,其中第i号战舰处于第i列。有T条指令,每条指令格式为以下两种之一:1、M i j,表示让第i号战舰所在列的全部战舰保持原有顺序,接在第j号战舰所在列的尾部。2、C i j,表示询问第i号战舰与第j号战舰当前是否处于同一列中,如果在同一列中,它们之间间隔了多少艘战舰。现在需要你编写一个程序,处理一系列的指令。输入格式第一行包含整数T,

2020-06-18 17:46:21 251

原创 并查集 + 离散化 + 哈希 - NOI 2015 程序自动分析 - 洛谷 P1955

并查集 + 离散化 + 哈希 - NOI 2015 程序自动分析 - 洛谷 P1955在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。考虑一个约束满足问题的简化版本:假设x1,x2,x3,…代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件同时被满足。例如,一个问题中的约束条件为:x1=x2,x2=x3,x3=x4,x1≠x4,这些约束条件显然是不可能同时被满足的,因此这个问题应判定

2020-06-18 14:35:17 214

原创 并查集 + 01背包 - 搭配购买 - 洛谷 P1455

并查集 + 01背包 - 搭配购买 - 洛谷 P1455Joe觉得云朵很美,决定去山上的商店买一些云朵。商店里有 n 朵云,云朵被编号为 1,2,…,n,并且每朵云都有一个价值。但是商店老板跟他说,一些云朵要搭配来买才好,所以买一朵云则与这朵云有搭配的云都要买。但是Joe的钱有限,所以他希望买的价值越多越好。输入格式第 1 行包含三个整数 n,m,w,表示有 n 朵云,m 个搭配,Joe有 w 的钱。第 2∼n+1行,每行两个整数 ci,di 表示 i 朵云的价钱和价值。第 n+2∼n+1+

2020-06-18 14:00:27 171

原创 并查集 - 格子游戏 - AcWing 1250

并查集 - 格子游戏 - AcWing 1250Alice和Bob玩了一个古老的游戏:首先画一个 n×n 的点阵(下图 n=3 )。接着,他们两个轮流在相邻的点之间画上红边和蓝边:直到围成一个封闭的圈(面积不必为 1)为止,“封圈”的那个人就是赢家。因为棋盘实在是太大了,他们的游戏实在是太长了!他们甚至在游戏中都不知道谁赢得了游戏。于是请你写一个程序,帮助他们计算他们是否结束了游戏?输入格式输入数据第一行为两个整数 n 和 m。n表示点阵的大小,m 表示一共画了 m 条线。以后 m 行,每

2020-06-16 19:17:22 191

原创 DFS(双向深搜) - 送礼物 - AcWing 171

DFS(双向深搜) - 送礼物 - AcWing 171达达帮翰翰给女生送礼物,翰翰一共准备了N个礼物,其中第i个礼物的重量是G[i]。达达的力气很大,他一次可以搬动重量之和不超过W的任意多个物品。达达希望一次搬掉尽量重的一些物品,请你告诉达达在他的力气范围内一次性能搬动的最大重量是多少。输入格式第一行两个整数,分别代表W和N。以后N行,每行一个正整数表示G[i]。输出格式仅一个整数,表示达达在他的力气范围内一次性能搬动的最大重量。数据范围1≤N≤46,1≤W,G[i]≤231−11≤N

2020-06-15 16:23:29 280

原创 DFS(迭代加深) - Addition Chains - POJ 2248

DFS(迭代加深) - Addition Chains - POJ 2248满足如下条件的序列X(序列中元素被标号为1、2、3…m)被称为“加成序列”:1、X[1]=12、X[m]=n3、X[1]<X[2]<…<X[m-1]<X[m]4、对于每个 k(2≤k≤m)都存在两个整数 i 和 j (1≤i,j≤k−1,i 和 j 可相等),使得X[k]=X[i]+X[j]。你的任务是:给定一个整数n,找出符合上述条件的长度m最小的“加成序列”。如果有多个满足要求的答案,只需要

2020-06-15 15:53:30 211

原创 ST表 + 二分 - CGCDSSQ - CodeForces - 475D

ST表 + 二分 - CGCDSSQ - CodeForces - 475D题意:给定长度为n的正整数序列a1,a2,...,an。给定长度为n的正整数序列a_1,a_2,...,a_n。给定长度为n的正整数序列a1​,a2​,...,an​。进行m组询问,每组询问包括一个正整数xi,i∈[1,m]。进行m组询问,每组询问包括一个正整数x_i,i∈[1,m]。进行m组询问,每组询问包括一个正整数xi​,i∈[1,m]。计算共有多少个区间[l,r],满足al,al+1,...,ar的最大公约数为x,即

2020-06-14 23:39:16 248

原创 数据结构 - ST表 - 处理RMQ问题

文章目录数据结构 - ST表 - 处理RMQ问题1、ST表例题2-1:洛谷 P3865 - ST表例题2-2:The Water Problem - HDU - 5443数据结构 - ST表 - 处理RMQ问题1、ST表是一种用于解决RMQ(RangeMinimum/MaximumQuery,即区间最值查询)问题的数据结构。是一种用于解决RMQ(Range Minimum/Maximum Query,即区间最值查询)问题的数据结构。是一种用于解决RMQ(RangeMinimum/MaximumQue

2020-06-14 22:49:22 204

原创 DFS(剪枝与优化) - 洛谷 P1361 - 小猫爬山

DFS(剪枝与优化) - 洛谷 P1361 - 小猫爬山翰翰和达达饲养了N只小猫,这天,小猫们要去爬山。经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<)。翰翰和达达只好花钱让它们坐索道下山。索道上的缆车最大承重量为W,而N只小猫的重量分别是C1、C2……CN。当然,每辆缆车上的小猫的重量之和不能超过W。每租用一辆缆车,翰翰和达达就要付1美元,所以他们想知道,最少需要付多少美元才能把这N只小猫都运送下山?输入格式第1行:包含两个用空格隔开的整数

2020-06-12 21:07:51 481

原创 DFS - 分成互质组 - 计蒜客 T1216

DFS - 分成互质组 - 计蒜客 T1216给定 n 个正整数,将它们分组,使得每组中任意两个数互质。至少要分成多少个组?输入格式第一行是一个正整数 n。第二行是 n 个不大于10000的正整数。输出格式一个正整数,即最少需要的组数。数据范围1≤n≤10输入样例:614 20 33 117 143 175输出样例:3分析:dfs策略:dfs策略:dfs策略:依次枚举每个每个正整数a[u],对每个a[u],依次枚举每一组,判断a[u]能否放入现有的组中。依次枚举每个

2020-06-12 19:14:48 354

原创 DFS - NOIP 2000 - 单词接龙

DFS - NOIP 2000 - 单词接龙单词接龙是一个与我们经常玩的成语接龙相类似的游戏。现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”,每个单词最多被使用两次。在两个单词相连时,其重合部分合为一部分,例如 beast 和 astonish ,如果接成一条龙则变为 beastonish。我们可以任意选择重合部分的长度,但其长度必须大于等于1,且严格小于两个串的长度,例如 at 和 atide 间不能相连。输入格式输入的第一行为一个单独的整数 n 表示单词数,以

2020-06-12 17:50:20 268

原创 优先队列 - Sequence - POJ 2442

优先队列 - Sequence - POJ 2442给定m个序列,每个包含n个非负整数。现在我们可以从每个序列中选择一个数字以形成具有m个整数的序列。很明显,我们一共可以得到nm个这种序列, 然后我们可以计算每个序列中的数字之和,并得到nm个值。现在请你求出这些序列和之中最小的n个值。输入格式第一行输入一个整数T,代表输入中包含测试用例的数量。接下来输入T组测试用例。对于每组测试用例,第一行输入两个整数m和n。接下在m行输入m个整数序列,数列中的整数均不超过10000。输出格式对于每组

2020-06-11 23:43:16 713

原创 优先队列 - Moo University - Financial Aid - POJ - 2010

优先队列 - Moo University - Financial Aid - POJ - 2010题意:首行输入三个整数n,m,F首行输入三个整数n,m,F首行输入三个整数n,m,F接着输入m行正整数数对(ai,bi)。接着输入m行正整数数对(a_i,b_i)。接着输入m行正整数数对(ai​,bi​)。从m个数对中挑选n个,(ai1,bi1),(ai2,bi2),...,(ain,bin),需满足∑k=1nbik≤F。从m个数对中挑选n个,(a_{i_1},b_{i_1}),(a_{i_2},b_

2020-06-11 22:52:09 135

原创 DFS - OpenJ 4123 - 马走日

DFS - OpenJ 4123 - 马走日马在中国象棋以日字形规则移动。请编写一段程序,给定 n∗m 大小的棋盘,以及马的初始位置 (x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。输入格式第一行为整数 T,表示测试数据组数。每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标 n,m,x,y。输出格式每组测试数据包含一行,为一个整数,表示马能遍历棋盘的途径总数,若无法遍历棋盘上的所有点则输出 0。数据范围1≤T≤9,1≤m,n≤9,0

2020-06-11 11:23:56 213

原创 DFS(剪枝) - POJ 1190 - NOI1999 生日蛋糕

DFS(剪枝) - NOI1999 - 生日蛋糕7月17日是 Mr.W 的生日,ACM-THU 为此要制作一个体积为 NπNπNπ 的 M 层生日蛋糕,每层都是一个圆柱体。设从下往上数第i层蛋糕是半径为RiR_iRi​, 高度为HiH_iHi​的圆柱。当 i < M 时,要求Ri>Ri+1R_i > R_{i+1}Ri​>Ri+1​且Hi>Hi+1H_i > H_{i+1}Hi​>Hi+1​。由于要在蛋糕上抹奶油,为尽可能节约经费,我们希望蛋糕外表面(最下一

2020-06-10 23:52:38 292

原创 A*(A - star) - Remmarguts’ Date - POJ - 2449

A*(A - star) - Remmarguts’ Date - POJ - 2449题意:给定一张N个点(编号1,2…N),M条边的有向图,求从起点S到终点T的第K短路的长度,路径允许重复经过点或边。注意: 每条最短路中至少要包含一条边。输入格式第一行包含两个整数N和M。接下来M行,每行包含三个整数A,B和L,表示点A与点B之间存在有向边,且边长为L。最后一行包含三个整数S,T和K,分别表示起点S,终点T和第K短路。输出格式输出占一行,包含一个整数,表示第K短路的长度,如果第K短路不存

2020-06-09 22:19:05 148

原创 BFS(双向广搜) - 计蒜客T2159 - NOIP2002 字串变换

BFS - 计蒜客T2159 - NOIP2002 字串变换已知有两个字串 A, B 及一组字串变换的规则(至多6个规则):A1−>B1A_1 -> B_1A1​−>B1​A2−>B2A_2 -> B_2A2​−>B2​…规则的含义为:在 A 中的子串 A1 可以变换为 B1、A2 可以变换为 B2 …。例如:A=’abcd’ B=’xyz’变换规则为:‘abc’->‘xu’ ‘ud’->‘y’ ‘y’->‘yz’则此时,A 可以经过一

2020-06-09 21:17:02 238

原创 BFS(双端队列) - LOJ 2632 - Lamp(电路维修)

BFS(双端队列) - LOJ 2632 - Lamp(电路维修)达达是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女翰翰,从而被收留在地球上。翰翰的家里有一辆飞行车。有一天飞行车的电路板突然出现了故障,导致无法启动。电路板的整体结构是一个R行C列的网格(R,C≤500),如下图所示。每个格点都是电线的接点,每个格子都包含一个电子元件。电子元件的主要部分是一个可旋转的、连接一条对角线上的两个接点的短电缆。在旋转之后,它就可以连接另一条对角线的两个接点。电路板左上角的接点接

2020-06-09 20:28:47 303

原创 BFS - USACO -Magic Squares(魔板)

BFS - USACO - Magic Squares(魔板)Rubik 先生在发明了风靡全球的魔方之后,又发明了它的二维版本——魔板。这是一张有 8 个大小相同的格子的魔板:1 2 3 48 7 6 5我们知道魔板的每一个方格都有一种颜色。这 8 种颜色用前 8 个正整数来表示。可以用颜色的序列来表示一种魔板状态,规定从魔板的左上角开始,沿顺时针方向依次取出整数,构成一个颜色序列。对于上图的魔板状态,我们用序列 (1,2,3,4,5,6,7,8) 来表示,这是基本状态。这里提供三种基本

2020-06-09 18:47:26 312

原创 BFS(多源) - 矩阵距离 - 小马智行面试题

BFS - 矩阵距离 - 小马智行面试题给定一个N行M列的01矩阵A,A[i][j]与A[k][l]之间的曼哈顿距离定义为:给定一个N行M列的01矩阵A,A[i][j] 与 A[k][l] 之间的曼哈顿距离定义为:给定一个N行M列的01矩阵A,A[i][j]与A[k][l]之间的曼哈顿距离定义为:dist(A[i][j],A[k][l])=∣i−k∣+∣j−l∣dist(A[i][j],A[k][l])=|i−k|+|j−l|dist(A[i][j],A[k][l])=∣i−k∣+∣j−l∣输出一个N

2020-06-09 18:26:31 671

原创 BFS - CH2906 - 武士风度的牛

BFS - CH2906 - 武士风度的牛农民John有很多牛,他想交易其中一头被Don称为The Knight的牛。这头牛有一个独一无二的超能力,在农场里像Knight一样地跳(就是我们熟悉的象棋中马的走法)。虽然这头神奇的牛不能跳到树上和石头上,但是它可以在牧场上随意跳,我们把牧场用一个x,y的坐标图来表示。这头神奇的牛像其它牛一样喜欢吃草,给你一张地图,上面标注了The Knight的开始位置,树、灌木、石头以及其它障碍的位置,除此之外还有一捆草。现在你的任务是,确定The Knight要想

2020-06-09 16:46:04 229

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除