先做出最小生成树,然后对每个点dfs判断树边是否可删…..
#include
using namespace std;
typedef long long LL;
const int maxn = 3005;
const int maxm = 6005;
const int INF = 0x3f3f3f3f;
struct Edge
{
int v;
Edge *next;
}E[maxm], *H[maxn], *edges;
int g[maxn][maxn];
int is[maxn][maxn];
int lowc[maxn];
int pre[maxn];
int dis[maxn];
int vis[maxn];
int n;
void init()
{
edges = E;
memset(H, 0, sizeof H);
memset(is, 0, sizeof is);
}
void addedges(int u, int v)
{
edges->v = v;
edges->next = H[u];
H[u] = edges++;
}
void Prim()
{
memset(vis, 0, sizeof vis);
vis[1] = true;
for(int i = 1; i lowc[j]) {
minc = lowc[j];
p = j;
t = pre[j];
}
vis[p] = true;
for(int j = 1; j g[p][j]) {
lowc[j] = g[p][j];
pre[j] = p;
}
is[p][t] = is[t][p] = true;
}
}
void dfs(int u, int fa)
{
for(Edge *e = H[u]; e; e = e->next) if(e->v != fa) {
int v = e->v;
dfs(e->v, u);
dis[u] = min(dis[u], dis[v]);
}
if(g[fa][u] >= dis[u]) is[fa][u] = is[u][fa] = 0;
}
void debug()
{
for(int i = 1; i
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
Go语言中的slice表示一个具有相同类型元素的可变长序列,语言本身提供了两个操作方法: 创建:make([]T,len,cap) 追加: append(slice, T …) 同时slice支持随机访问。本篇文章主要对slice的具体实现进行总结。 1.…