首页 > 代码库 > hdu 1598
hdu 1598
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;#define N 1005#define INF 0x1f1f1f1fstruct tt{ int x,y,sp;}p[N];int pre[N];bool cmp(tt a, tt b){ return a.sp<b.sp;}int find(int x){ int r = x; while(x!=pre[x]) x = pre[x]; while(r!=x) { int j = pre[r]; pre[r] = x; r = j; } return x;}int main(){ int n,q,i,j,s,t,m; while(~scanf("%d %d",&n,&m)) { for(i = 0 ; i < m ; i++) scanf("%d %d %d",&p[i].x,&p[i].y,&p[i].sp); sort(p,p+m,cmp); scanf("%d",&q); while(q--) { int minx = INF; scanf("%d %d",&s,&t); for(i = 0 ; i < m ; i++) { for(j = 0 ; j <= n ; j++) pre[j] = j; for(j = i ; j < m ; j++) { int fx = find(p[j].x); int fy = find(p[j].y); if(fx!=fy) pre[fx] = fy; if(find(s) == find(t)) minx = min(minx,p[j].sp - p[i].sp); } } if(minx!=INF) printf("%d\n",minx); else printf("-1\n"); } } return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。