• HDU 3691 Nubulsa Expo


    无向图的最小割。套了个模板。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    #define MAXN 555
    #define inf 1<<30
    
    int v[MAXN],dist[MAXN];
    int map[MAXN][MAXN];
    bool vis[MAXN];
    int n,m,xx;
    
    
    //结点下标从0开始!!!!!!!!!
    
    
    //求全局最小割的Stoer_Wanger算法
    int Stoer_Wanger(int n)
    {
        int res=inf;
        for(int i=0;i<n;i++)v[i]=i;
        while(n>1){
            int k=0,pre=0;//pre用来表示之前加入A集合的点,我们每次都以0点为第一个加入A集合的点
            memset(vis,false,sizeof(vis));
            memset(dist,0,sizeof(dist));
            for(int i=1;i<n;i++){
                k=-1;
                for(int j=1;j<n;j++){
                    if(!vis[v[j]]){
                        dist[v[j]]+=map[v[pre]][v[j]];//dis数组用来表示该点与A集合中所有点之间的边的长度之和
                        if(k==-1||dist[v[k]]<dist[v[j]]){
                            k=j;
                        }
                    }
                }
                vis[v[k]]=true;
                if(i==n-1){
                    res=min(res,dist[v[k]]);
                    //将该点合并到pre上,相应的边权就要合并
                    for(int j=0;j<n;j++){
                        map[v[pre]][v[j]]+=map[v[j]][v[k]];
                        map[v[j]][v[pre]]+=map[v[j]][v[k]];
                    }
                    v[k]=v[--n];//删除最后一个点
                }
                pre=k;
            }
        }
        return res;
    }
    
    int main()
    {
        int u,v,w;
        while(1)
        {
            scanf("%d%d%d",&n,&m,&xx);
            if(n==0&&m==0&&xx==0) break;
            memset(map,0,sizeof(map));
            while(m--){
                scanf("%d%d%d",&u,&v,&w);
                u--,v--;
                map[u][v]+=w;
                map[v][u]+=w;
            }
            int ans=Stoer_Wanger(n);
            printf("%d
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    weblogic 反序列化补丁绕过漏洞的一个批量检测shell脚本(CVE-2017-3248 )
    【转】常用端口服务
    【转】服务器解析漏洞
    针对Web的信息搜集
    Kali Linux安装AWVS漏扫工具
    PowerShell 反弹渗透技巧
    ShellCode 最小化编译优化
    Ansible 自动化学习笔记(精简)
    基于白名单的Payload
    社工工具包 SEToolkit
  • 原文地址:https://www.cnblogs.com/zufezzt/p/4858422.html
Copyright © 2020-2023  润新知