zoukankan      html  css  js  c++  java
  • HDU 3357

    http://acm.hdu.edu.cn/showproblem.php?pid=3357

    给出公司间的控股关系,问有多少组不合法数据,自己控股自己不合法,a控股b,b控股c,则a控股c

    其实就是找环,加一条边如果出现环ans++,但是每次搜一遍有没有环会tle。此处用邻接矩阵处理,如果a要控股b,则控股a的公司都控股b,并且a控股的公司都被控股a的控股。对于b的分析同理,此题有大量重复数据,需要去掉

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <map>
    #include <algorithm>
    #include <queue>
    #include <cmath>
    #include <stack>
    #include <set>
    
    using namespace std;
    
    int mp[300][300];
    int n;
    
    void add(int a,int b){
        mp[a][b]=1;
        for(int i=1;i<=n;i++)
            if(mp[i][a]){
                mp[i][b]=1;
                for(int j=1;j<=n;j++)
                    if(mp[a][j])
                        mp[i][j]=1;
            }
        for(int i=1;i<=n;i++)
            if(mp[b][i]){
                mp[a][i]=1;
                for(int j=1;j<=n;j++)
                    if(mp[j][b])
                        mp[j][i]=1;
            }
    }
    
    int main(){
        int t;
        int cas=1;
        while(~scanf("%d%d",&n,&t)){
            if(!n && !t)break;
            memset(mp,0,sizeof(mp));
            int ans=0;
            while(t--){
                int a,b;
                scanf("%d%d",&a,&b);    
                if(mp[b][a])ans++;
                else if(a==b)ans++;
                else if(!mp[a][b]) add(a,b);//关键,去除重复边,直接else会TLE 
            }
            printf("%d. %d
    ",cas++,ans);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    文件包含漏洞
    命令执行漏洞详解
    CSRF跨站请求伪造
    XSS跨站脚本攻击详解
    SQL盲注
    字符型注入、数字型注入、搜索型注入
    AWVS13扫描类型profile_id对照表
    Cobalt Strike 和 Metasploit Framework 联动
    msf常用命令
    上传嵌入式python环境进行渗透测试
  • 原文地址:https://www.cnblogs.com/xiaohongmao/p/4133522.html
Copyright © 2011-2022 走看看