我是图的新手,我正试图在Java解决这个问题:
给定一个具有N个节点和N-1条带权的双向边的图,如果一条新边q允许减少图的总权重,算法必须响应是,否则不允许。
如果存在边“e”,则边“q”满足这个条件,使得可以用“q”替换“e”,从而使图连通并减小其总权重。
我用邻接列表实现了图:
public class Vertex {
private final int element;
private final Set<Edge> edges; // Collection of edges to neighbors
public Vertex(int element) {
this.element = element;
edges = new HashSet<>();
}
public int getElement() {
return element;
}
public boolean addEdge(Edge edge) {
return edges.add(edge);
}
public List<Edge> getEdges() {
return new ArrayList<>(edges);
}
}
边缘类:
public class Edge {
private Vertex to;
private int weight;
public Edge(Vertex to, int weight) {
super();
this.to = to;
this.weight = weight;
}
public Vertex getTo() {
return to;
}
...
和图形类:
public class Graph {
private final Set<Vertex> vertices; // Collection of all vertices
public Graph() {
vertices = new HashSet<>();
}
public List<Vertex> getVertices() {
return new ArrayList<>(vertices);
}
public boolean addVertex(Vertex vertex) {
return vertices.add(vertex);
}
}
有没有一个算法我可以用来解决问题?
给定一个具有N个结点和N-1条加权双向边的图,
那么该图就是一棵树。(假设图是连通的。)树的一个有用的性质是,对于树中的任意两个节点s和t,它们之间存在单个唯一(简单)路径。
如果新边“q”允许减少图的整体权重,算法必须响应“是”,否则不允许。
在树中的两个节点(例如,s和t)之间添加一条新边会创建一个循环。移除这个新循环中的任何边将创建一个同样是树的新(连通)图。
如果存在边“e”,则边“q”满足这个条件,使得可以用“q”替换“e”,从而使图连通并减小其总权重。
只有在从s到t(或t到s)的路径中存在一条或多条边,其权重大于新边Q的权重时,才能满足该条件。如果存在多个这样的边缘,则可以替换其中的任何一个。
问题内容: 我创建了一个扩展awt.Polygon类的类。我正在尝试编写一种方法,该方法给出了多边形的PathIterator和一个表示顶点的Point,将点添加到路径中的适当位置。 例如:一个点为(0,0)(0,10)(10,10)(10,0)(正方形)的多边形,给定点(1,5)将使多边形(0,0) (1,5)(0,10)(10,10)(10,0) 提前致谢 问题答案: 扩展@normaloci
假定给定一个给定图G(有n个顶点和m条边)的最小生成树T和一个新边e=(u,v),它的权重为w。 (I)检验T是否为MST;(II)如果不是,给出了求图G+E的最小生成树的有效算法。
我有经度和纬度的地理坐标,比如西北和东南经度/纬度。所以,当我得到它们的时候,我把它们转换成公制。因此,这里我得到了我的第一个西北和东南坐标的矩形,然后我有了北,南,西,东坐标的相同公制中的边界矩形。我需要检查这两个直角相交的边,我写的是: 我不确定我做得对不对?我的要求是,如果第二个矩形的边界与第一个矩形的边界相交,那么第二个必须留在左边。否则,过滤。
我有一个有向图,边上的权值是非负的。 我的算法应该做到以下几点: 获取从顶点u到顶点V的所有路径 计算从u到v的每条路径上的最小加权边 计算我从上面计算的最小加权边的最大值。
我要做什么::我想使用我当前的实现为圆形图像添加一个黑色边框,如何在不使用第三方库的情况下实现这一点 全面转变。JAVA
我一直试图得到一个条形图,每个条形图上都有值标签。我找遍了,但还是找不到。我的df如下所示。 到目前为止,我的代码是