zoukankan      html  css  js  c++  java
  • POJ 3275 两种做法

    题意:
    这里写图片描述
    思路:
    1.Floyd传递闭包 n^3/32 勉强卡过去吧……
    2.用邻接表搞Floyd 也是勉强卡过去……
    最后用n*(n-1)-矩阵中为1的个数就OK了

    传递闭包:

    //By SiriusRem
    #include <bitset>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    bitset<1005>map[1005];
    int n,m,xx,yy,ans;
    int main(){
        scanf("%d%d",&n,&m);
        for(int i=1;i<=m;i++){
            scanf("%d%d",&xx,&yy);
            map[xx][yy]=1;
        }
        for(int j=1;j<=n;j++){
            for(int i=1;i<=n;i++){
                if(map[i][j])map[i]|=map[j];
            }
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(map[i][j])ans++;
            }
        }
        printf("%d
    ",n*(n-1)/2-ans);
    }

    邻接表:

    //By SiriusRem
    #include <bitset>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    #define N 1000005
    int n,m,xx,yy,v[N],first[N],next[N],tot,map[1005][1005];
    int first2[N],next2[N],v2[N],tot2;
    void add(int x,int y){
        v[++tot]=y,next[tot]=first[x],first[x]=tot;
    }
    void add2(int x,int y){
        v2[++tot2]=y,next2[tot2]=first2[x],first2[x]=tot2;
    }
    int main(){
        scanf("%d%d",&n,&m);
        for(int i=1;i<=m;i++){
            scanf("%d%d",&xx,&yy);
            add(xx,yy);
            map[xx][yy]=1;
            add2(yy,xx);
        }
        for(int k=1;k<=n;k++){
            for(int i=first2[k];i;i=next2[i]){
                for(int j=first[k];j;j=next[j]){
                    if(!map[v2[i]][v[j]]){
                        m++;
                        map[v2[i]][v[j]]=1;
                        add(v2[i],v[j]);
                        add2(v[j],v2[i]);
                    }
                }
            }
        }
        printf("%d
    ",n*(n-1)/2-m);
    }

    这里写图片描述

  • 相关阅读:
    MyBatis的几种批量操作
    mysql event_scheduler运行一段时间后 自动关闭
    Mysql 中的事件//定时任务
    JSON对象
    JSON语法
    JSON简介——(0)
    【zTree】zTree的3.5.26静态树与动态树(实用)
    frameset测试
    iframe测试
    jQuery遍历方式
  • 原文地址:https://www.cnblogs.com/SiriusRen/p/6532264.html
Copyright © 2011-2022 走看看