zoukankan      html  css  js  c++  java
  • hdu 1598 find the most comfortable road

    题目要求是可达情况下,舒适度最好,即速度之差最小。

    1.因为不考虑距离 所以只要在同一集合中即可

    2.需要在条件1枚举最小速度,然后找符合条件的

     1 #include "iostream"
     2 #include "algorithm"
     3 #include "memory.h"
     4 #include "cmath"
     5 #include "string"
     6 #include "vector"
     7 #include "algorithm"
     8 #include "climits"
     9 using namespace std;
    10 #define MAXN 1111
    11 #define _min(a,b) (((a)<(b))?(a):(b))
    12 struct node {
    13     int x, y,speed;
    14     bool operator < (node a) const{
    15         return speed < a.speed;
    16     }
    17 }p[MAXN];
    18 int fa[MAXN];
    19 int n, m, q, t;
    20 int re, num, ans;
    21 
    22 int find(int x)
    23 {
    24     if (fa[x] < 0) return x;
    25     return fa[x] = find(fa[x]);
    26 }
    27 
    28 void merge(int a, int b)
    29 {
    30     int x = find(a);
    31     int y = find(b);
    32     if (x < y) {
    33         fa[x] += fa[y];
    34         fa[y] = x;
    35     }
    36     if (x > y) {
    37         fa[y] += fa[x];
    38         fa[x] = y;
    39     }
    40 }
    41 
    42 
    43 int main()
    44 {
    45     ios::sync_with_stdio(false);
    46     while (cin >> n >> m) {
    47         for (int i = 0; i < m; ++ i) {
    48             cin >> p[i].x >> p[i].y >> p[i].speed;
    49         }
    50         sort(p,p+m);
    51         cin >> q;
    52         for (int i = 0; i < q; ++i) {
    53             int u, v;
    54             cin >> u >> v;
    55             ans = INT_MAX;
    56             for (int j = 0; j < m; ++j) {
    57                 memset(fa,-1,sizeof(fa));
    58                 for (int k = j; k < m; ++k) {
    59                     merge(p[k].x,p[k].y);
    60                     if (find(u) == find(v)) {
    61                         ans = _min(ans, p[k].speed - p[j].speed);
    62                         break;
    63                     }
    64                 }
    65             }
    66             if (ans == INT_MAX) cout << "-1" << endl;
    67             else cout << ans << endl;
    68         }
    69     }
    70     return 0;
    71 }
  • 相关阅读:
    Sam小结和模板
    K-string HDU
    str2int HDU
    Common Substrings POJ
    Reincarnation HDU
    实体框架自动迁移出现异常。
    C#代码配置IIS 操纵IIS
    MVC项目页面获取控制器的信息
    通过js判断手机访问跳转到手机站
    "Could not load file or assembly 'DTcms.Web.UI' or one of its dependencies. 拒绝访问。" 的解决办法
  • 原文地址:https://www.cnblogs.com/usedrosee/p/4248460.html
Copyright © 2011-2022 走看看