staggered road X4, Y2, X3, Y0 X1, not found? there is a X4---------Y2, X3, X0--Y1-X2 The inverse of the path attribute becomes the upper (right) graph. At this point, all the vertices in set X already have corresponding matching, that is, complete matching! That is, the maximum weight of this binary graph match! X0-Y1X1-Y0X2-Y4X3-Y3X4-Y2Maximum power value is 30What about the minimum weight matching requirement? Very simple, before solving the ownership value of the opposite number, the results
Test instructions: N students arranged to M dormitory, each student to the dormitory has a rating, positive, 0, negative, now the evaluation is negative, can not let this student go to this room, ask how to arrange to let all the students live in the dormitory and the most evaluation.Idea: When building the weight of a graph, filter out negative edges.#include #include #include #include #include #include #include #include #include #include #include #include #define Lson (rt#define Rson (rt#defin
This is a creation in
Article, where the information may have evolved or changed.
Objective
In the previous article, we simply introduced the deployment of drone. The next step is to introduce the official documents as well as the plugins I used in the actual work. This article, is mainly a complete drone demo. Pipeline includes the Git clone pull code, the go build build, the Docker image is generated and pushed to the harbor,notify notification. On the notice, the official plug-ins are some of
The main idea: in a grid there are n small men and N houses, now want to let every little man have a house to live, but everyone to move a bit to spend ¥1, now find out the minimum total cost. PS: It can be thought that each point of the grid is a large square and accommodates all the people who can walk at the point of having a house but do not enter the house.Analysis: Man-house, very perfect with all minimum values match Ah, the cost of people to a house is their Manhattan distance between th
If a thing, you do not love him, perhaps because you fear it, dare not to touch him, so devote less time. Muddle through the living, muddle through life, will slack off, and is once the opportunity to slack, no opportunity will also create opportunities to slack off, and the first big law is "slack people will never su
feasibility, that is, for the above after this step, at least one feasible edge will be added to the figure. (5) After the modification, continue to the X-side point Dfs augmentation, if it fails, continue to modify until successful;The above is the basic idea of the KM algorithm. But the simple implementation method, the time complexity of O (N4)-Need to find O (n) Secondary augmentation path, each augmentation needs to modify the O (N) sub-index, each time the top is modified to enumerate the
edges, so that new edges added will always be able to add matching numbers to the sub-graph, while at the same time make the weight and the maximum increase.Implementation code/*HDU-2255*/#include#include#include#include#defineMAXN 310#defineINF 0x3f3f3f3fusing namespacestd;intNx,ny;intG[MAXN][MAXN];intLINKER[MAXN],LINKX[MAXN],LINKY[MAXN];intSLACK[MAXN];BOOLVISX[MAXN],VISY[MAXN];BOOLDfsintk) {Visx[k]=true; for(inty=0; y) { if(Visy[y])Continue; inttmp=linkx[k]+linky[y]-G[k][y]; if(!tm
HDU_2813
To avoid time-out when reading data, hash can be used for processing, and then non-Repeated names can be taken out for a vertex, then use the KM algorithm to find the optimal matching for the bipartite graph.
#include#include#include#define MAXD 210#define MAXM 40010#define INF 1000000000#define HASH 10007int headL[HASH], nextL[MAXM], headC[HASH], nextC[MAXM];int N, M, K, G[MAXD][MAXD], yM[MAXD], MAX;int A[MAXD], B[MAXD], slack[MAXD];int vis
HDU_1533
The shortest distance between people and houses is the distance between Manhattan. After creating the image, apply the KM algorithm to obtain the optimal matching of the Bipartite Graph.
#include#include#include#define MAXD 110#define MAX 10010#define INF 1000000000int N, hx[MAXD], hy[MAXD], px[MAXD], py[MAXD];int a[MAXD][MAXD], G[MAXD][MAXD], yM[MAXD];int A[MAXD], B[MAXD], slack, visx[MAXD], visy[MAXD];char b[MAXD];int init(){int i, j, k, n
HDU_2853
We can think that if we start matching from scratch and if the final part of matching changes but does not affect the final result, we do not need to change it into a new matching method. Therefore, we consider adding a "preference" to the original edge to ensure that it matches the original edge first without affecting the result.
When processing data, we can expand each edge to a certain value (multiply by 10 in my program), and then add the original edge weight to 1, in this way, w
HDU_3772
We can split a string into two vertices to represent the inbound and outbound degrees, and then use the KM algorithm to perform Optimal Matching for the bipartite graph.
#include#include#define MAXD 210#define INF 1000000000char b[MAXD][1010];int G[MAXD][MAXD] , yM[MAXD], N;int A[MAXD], B[MAXD], slack;int visx[MAXD], visy[MAXD];int check(char *str1, char *str2){int i, j, num = 0; i =strlen(str1) - 1;for(j = 0; str1[i] == str2[j] i >= 0
Uva_000046
This topic can be done with the minimum cost and the maximum flow. In order to review the optimal matching of the bipartite graph, we wrote a KM program.
At first, because I had not processed the double KM before, I was going to multiply the decimal number by a certain power of 10 into an integer, but I found that WA was always there, and then I simply wrote it using double, and then the AC.
#include#include#include#define MAXD 30#define INF 1000000000int N, M, xM[MAXD], yM[MAXD] ,vis
of their income. (Villagers who have the money to buy a house but not necessarily can buy it depends on what the village leader assigns).Input data contains multiple sets of test cases, the first row of each set of data input n, indicating the number of houses (also the number of people home), followed by n rows, the number of n per row represents the price of the room of the second village name (nOutput make the maximum revenue value for each set of data, one row for each set of outputs.Sample
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 [
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
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.