BFS
Nightmare丶
登高必自卑,行远必自迩
展开
-
Warm up HDU - 4612
题意:给出一个n个点m条边的无向图,询问添加一条边后图中最少有多少个桥?题解:对无向图缩点,缩点后的DAG有多少条边即有多少个桥。很明显添加一条边(u, v)后,DAG中的(u, v)路径上的桥都会失效。那么我们直接找一条最长的路径即直径即可。代码:/* * @Author : Nightmare */#include <bits/stdc++.h>using namespace std;#define ll long long#define ull unsigned原创 2020-10-29 19:41:05 · 96 阅读 · 0 评论 -
HDU 6705 paths
题意:给出n个点,m条有向边的图,Q次询问,每次询问第K短路的路径长度题解:由于起点和终点都不固定,所以A*肯定是不行的了首先先把每个点所连的点按照边权排序考虑对于已知的最小边,需要如何拓展,假设当前边的起点是u,终点是v,我们每次拓展的时候,就只需要拓展到u的下一条边或者v点的最小边,因为我们是排过序的,所以这样拓展一定是最优的,然后用优先队列记录一下路径和即可AC代码:#pr...原创 2020-01-18 16:42:35 · 128 阅读 · 0 评论 -
BZOJ 1054: [HAOI2008]移动玩具(状压,BFS)
Description在一个4*4的方框内摆放了若干个相同的玩具,某人想将这些玩具重新摆放成为他心中理想的状态,规定移动时只能将玩具向上下左右四个方向移动,并且移动的位置不能有玩具,请你用最少的移动次数将初始的玩具状态移动到某人心中的目标状态。Input前4行表示玩具的初始状态,每行4个数字1或0,1表示方格中放置了玩具,0表示没有放置玩具。接着是一个空行。接下来4行表示玩具的目标状态...原创 2019-12-31 23:44:52 · 201 阅读 · 0 评论 -
HDU3247 Resource Archiver(AC自动机+状压BFS)
题意:给你n个资源串S,和m个病毒串,问一个最短的字符串包含所有的资源串,但不包含病毒串,输出其长度。题解:很明显,n的范围(2≤n≤10)(2≤n≤10)(2≤n≤10),很容易想到状压,因此我们考虑将资源串和病毒串都放入AC自动机中,将病毒串的尾节点置为-1不走这个点即可。然后就是BFS爆搜就行了。AC代码(状压BFS):#include<bits/stdc++.h>...原创 2019-11-21 17:46:40 · 173 阅读 · 0 评论