A tough question
First, the input is very painful. According to the online experts, the question matrix is reversed. Then I gave it back.
If it is a match between n and n, there is no pressure to directly obtain the negative value of KM.
However, if the points on both sides are different, it is said that there will be problems.
[Cpp]# Include # Include # Include # Include # Include # Include # Define maxn505# Define MAXM 555555# Define INF 1000000000Using namespace std;Int n, m, ny, nx;Int w [
# Include # Include # Include # Include # Include # Include # Include # Include # Include # Include # Include # Include # Define LL long# Define eps 1e-5# Define inf 1ll # Define zero (a) fabs (a) # Define N 20005Using namespace std;Struct Point {Double x, y;} Ant [105], tree [105];Double path [1, 101] [2, 101];Int cnt;Double lx [101], ly [101];Int match [101];Double slack;Bool v_x [101], v_y [101];Double dist (Point p1, Point p2 ){Return sqrt (p1.x-
why calculate Setup time of the Slack need to consider adding cycles, Hold Time when you don't need it? Summary one:Because the data delay,launch edge and capture edge do not correspond to the same clock edge of the clock signal source clocks, due to the existence of the time of Setup, the addition cycle needs to be considered. When a single clock cycle is checked, the tool defaults to capture Edge-launch edge=1 cycles.Hold time because the two corre
underground to find, clear boundary conditions (generally a fork can be easily done), so that the problem is easily solved. (It seems that a template like this, basic all similar problems can be resolved)1#include 2#include 3#include 4#include 5#include 6 using namespacestd;7 #defineMAXN 1008 #defineINF 1000000009 Ten intCases,n; One intA[MAXN][MAXN],B[MAXN][MAXN],VAL[MAXN][MAXN],SLACK[MAXN],VALX[MAXN],VALY[MAXN],LINKY[MAXN]; A BOOLVISX[MAXN],VISY[M
HDU_3488
It is worth mentioning that if we use the KM algorithm to find the perfect matching of minimum weights, we need to initialize the edge weight to the MAX-G [I] [j] and then find the perfect matching of the maximum right, and then convert the result back.
If you initialize G [I] [j] to-G [I] [j] to find the perfect matching of the maximum permission, the program I write Will time out, at the moment, I have no idea whether this idea is a problem or my writing is a problem.
#include#inclu
HDU_3718
First, we need to convert the characters in the string into the number of [0, k-1] with the same meaning, and then scan the array sequentially, we can get the maximum value of various matching between the two sets of numbers, this completes the graph creation.
Then use the KM algorithm to find the optimal match.
#include#include#define MAXD 30#define MAXN 10010#define INF 1000000000char a[MAXN][5], b[MAXN][5];int visa[MAXN], visb[MAXN], x[MAXN], y[MAXN];int G[MAXD][MAXD], yM[MAXD], N,
HDU_3395
We can split a fish into two points, which respectively represent attack and attack, and then set the Edge Weight of G [I] [j] = 1 to value [I].^ Value [j], and then use the KM algorithm to find the optimal matching of the Bipartite Graph.
#include#include#define MAXD 110#define INF 1000000000int yM[MAXD], G[MAXD][MAXD], N, value[MAXD];int A[MAXD], B[MAXD];int visx[MAXD], visy[MAXD], slack;char b[MAXD];int init(){int i, j; scanf("%d", N);
. Edge (I,J) does not belong to an equal sub-graphI in the staggered tree, J is not in the interlaced tree, The Edge (I,J) may be added to the equal sub-graphIn order for the A[i]+b[j]>=w (I,J) to always be true, and at least one edge is added to the equal sub-graph, d=min{a[i]+b[j]-w (i,j)},i in the interlaced tree, J is not in the interlaced treetime complexity: need to find an O (n) time augmentation path. Each augmentation requires an O (n) sub-index change. Each time you change the top, enu
graph can contain neither negative weight loop nor positive weight loop, so it contains |v|-1 edge. Second, if the shortest path exists for all vertices from the source point s, these shortest paths form a shortest path tree rooted in S. The iterative relaxation operation of the Bellman-ford algorithm is actually the process of generating the shortest path tree by layer by the level of the vertex distance s. When 1 times slack is made on each side, t
current queue, the V point is placed in the tail of the team. This keeps the nodes out of the queue for relaxation until the queue is empty.The expected time complexity O (ke), where k is the average number of incoming teams for all vertices, can prove that K is generally less than or equal to 2.Implementation method:Set up a queue that initially has only a starting point in the queue, and then establish a table that records the shortest path from the starting point to all points (the initial v
the equal subgraph.
The problem now is to evaluate the value of D. To ensure that A [I] + B [j]> = w [I, j] is always valid, and at least one edge enters an equal subgraph, d should be equal to min {A [I] + B [j]-w [I, j] | Xi is in the staggered tree, Yi is not in the staggered tree }.
The above is the basic idea of the KM algorithm. However, in a simple implementation method, the time complexity is O (n4). You need to find the O (n) Increment path, and you need to modify the O (n) Increment
] + B [J] expands, and edge (I, j) does not belong to an equal subgraph.
I is in the staggered tree, J is not in the staggered tree, and edge (I, j) may be added to an equal subgraph.
To ensure that a [I] + B [J]> = W (I, j) is always valid, and at least one edge is added to an equal subgraph, D = min {A [I] + B [J]-W (I, j)}, I is in the staggered tree, J is not in the staggered tree
Time Complexity:You need to find the O (n) Increment path. You need to modify the O (n) Increment path at most.
Test instructions: Tell the relationship between any two fishes, then, the weights of the two related fishes are different or spawn values, and the maximum value of all spawn is obtained.Idea: pretreatment of any two fish spawn value, km match can be.#include #include #include #include #include #include #include #include #include #include #include #include #define Lson (rt#define Rson (rt#define M ((l+r) >>1)#define CL (A, B) memset (A,b,sizeof (a));#define LL Long Long#define P pair#define X Fi
Test instructions: Tells the weight of the edge between the cards when the first string is reversed, and the second string is the longest common prefix, which is preprocessed under this weight. Under the KM#include #include #include #include #include #include #include #include #include #include #include #include #define Lson (rt#define Rson (rt#define M ((l+r) >>1)#define CL (A, B) memset (A,b,sizeof (a));#define LL Long Long#define P pair#define X First#define Y Second#define PB Push_back#defin
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.