nyoj-最舒适的路线
来源:互联网 发布:win10没有软件 编辑:程序博客网 时间:2024/04/29 20:30
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int father[505];struct node{ int a,b,v;}s[5005];int n;void init(){ for(int i = 0;i <=n;i++) father[i] = i;}bool cmp(node p,node q){ return p.v > q.v;}int find(int x){ if(father[x]!=x) father[x] = find(father[x]); return father[x];}void Union(int a,int b){ int x = find(a); int y = find(b); if(x!=y) { father[x] = y; }}int main(){ int t,m,x,y,a,b,v,i,j; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); for( i = 0;i < m;i++) scanf("%d%d%d",&s[i].a,&s[i].b,&s[i].v); sort(s,s+m,cmp); int p = 0, q = 0; scanf("%d%d",&x,&y); int flag1 = 0; double min = 1001000000.0; int flag = 0; for(i = 0;i < m;i++) { init(); for(j = i;j < m;j++) { Union(s[j].a,s[j].b); if(find(x)==find(y)) { double k = s[i].v*1.0/s[j].v*1.0; if(k < min) { min = k; p = i,q = j; } flag = 1; break; } } } if(!flag) printf("IMPOSSIBLE\n"); else { int d = s[p].v; int c = s[q].v; while(d) { int r = c%d; c = d; d = r; } int u = s[p].v/c; int z = s[q].v/c; if(u%z) printf("%d/%d\n",u,z); else printf("%d\n",u/z); } }}
0 0
- nyoj-最舒适的路线
- nyoj 711 最舒适的路线
- nyoj 711 最舒适的路线
- nyoj-711最舒适的路线
- NYOJ 题目711 最舒适的路线
- NYOJ 711 最舒适的路线
- nyoj 711 最舒适的路线
- 最舒适的路线
- NYOJ 711 最舒适的路线(并查集)
- NYOJ 711 最舒适的路线(bfs+优先队列)
- NYOJ 711 最舒适的路线(并查集+枚举,贪心+欧几里德算法)
- nyoj 711最舒适的路线(第六届河南省程序设计大赛 并查集)
- 最舒适的路线 第六届
- 第六届河南省赛 zzulioj 1483: 最舒适的路线 (并查集)好题 nyoj 711
- 舒适的路线
- codevs1001 舒适的路线
- wikioi1001 舒适的路线
- 1001 舒适的路线
- 深入Java内存模型
- 查询Oracle正在执行和执行过的SQL语句
- 第14集 再探C++中异常的rethrow
- 数据结构-线性表
- Sparse Big Integer
- nyoj-最舒适的路线
- 深入Java内存模型
- LeetCode Reorder List
- c++面试题6
- photoshop学习
- C语言中的__FILE__、__LINE__和#line
- #line的作用
- Dialog的使用(一):用AlertDialog提示
- ArcEngine下动态数据的实现显示——概念及接口介绍