zoukankan      html  css  js  c++  java
  • POJ 3522 用不同的排序方式

     

      这是一个蜜汁WA了的代码。。

      说好的样例对了就是对了呢orz

      反正我个人认为思路是没问题的不知道WA在哪了,丢个坑在这里以后填吧

     1 //思路:
     2 //1节点连接的边都记录下来,依次克鲁斯卡尔枚举得出最小值。
     3 //排序思路:将所有边按与枚举的边的差值排序。
     4 #include<cstdio>
     5 #include<cmath>
     6 #include<algorithm>
     7 using namespace std;
     8 const int inf = (1<<31)-1;
     9 const int maxn=1e2+5;
    10 struct qa
    11 {
    12     int u,v,w;
    13 }q[5000];
    14 int n,m;
    15 int mf;
    16 int f[maxn],p[maxn];
    17 bool b[maxn];
    18 inline bool cmp(const qa &a,const qa &b)
    19 {
    20     return abs(a.w-mf)<abs(b.w-mf);
    21 }
    22 inline int find1(int x)
    23 {
    24    return f[x]==x?x:f[x]=find1(f[x]);
    25 }
    26 int zx()//就是克鲁斯卡尔。。
    27 {
    28     int t=0;
    29     for(int i=1;i<=n;i++)
    30         f[i]=i;
    31     int maxx=mf,minn=mf;
    32     sort(q+1,q+m+1,cmp);
    33     for(int i=1;i<=m;i++)
    34     {
    35         int x=find1(q[i].u),y=find1(q[i].v);
    36         if(x!=y)
    37         {
    38             f[x]=y;
    39             maxx=max(maxx,q[i].w);
    40             minn=min(minn,q[i].w);
    41             t++;
    42         }
    43         if(t==n-1)return maxx-minn;
    44     }
    45     return -1;
    46 }
    47 int main()
    48 {
    49     while(scanf("%d%d",&n,&m),n||m){
    50         int ans=0;
    51         for(int i=1;i<=m;i++)
    52         {
    53             scanf("%d%d%d",&q[i].u,&q[i].v,&q[i].w);
    54             if(q[i].u==1||q[i].v==1)p[++ans]=q[i].w;        
    55         }
    56         int minn=inf;
    57         for(int i=1;i<=ans;i++)
    58         {
    59             mf=p[i];
    60             int mm=zx();
    61             if(mm==-1)continue;
    62             minn=min(minn,mm);
    63         }
    64         if(minn!=inf)printf("%d
    ",minn);
    65         else printf("-1
    ");
    66     }
    67     return 0;
    68 }
    View Code
    适当比较,砥砺前行
  • 相关阅读:
    PowerCat DNS 隧道通信
    各种反弹shell方法总结备忘
    Halo-个人独立博客系统
    内网渗透之域渗透
    使用 EW 作Socks5代理内网穿透
    PowerShell攻击:nishang
    贝叶斯网络
    Anaconda的CondaHTTPError问题
    完美解决win10系统无法安装.NET Framework问题
    敏捷开发中如何做质量管理?
  • 原文地址:https://www.cnblogs.com/llllrj/p/9383269.html
Copyright © 2011-2022 走看看