zoukankan      html  css  js  c++  java
  • p1232

    刚开始真的没想到什么好算法,然后就看到了数据规模,小于5000...这不是在逗我么.

    那么就可以支持n^2的算法了,对于每个点跑一次dfs,每个到达的点记录flag[i][now]=1,最后找最大值并输出.

    明明是n^2为啥有快超时的啊?不懂

    using namespace std;
    int i,f,tx,ty,t;
    int n,m;
    int head[5010],tot,flag[5010][5010],v[5010],sum[5010];
    inline void write(int x)  
    {  
        if(x<0) putchar('-'),x=-x;  
        if(x>9) write(x/10);  
        putchar(x%10+'0');  
    }
    inline int read()
    {
        int x=0,n=1;
        char ch=getchar();
        while(!isdigit(ch))
        {
         if(ch=='-')n=-1;
         ch=getchar();
     }
        while(isdigit(ch))
        {
            x=(x<<1)+(x<<3)+ch-'0';
            ch=getchar();
        }
        return x*n;
    }
    struct edge
    {
        int x,y,next;
    }o[100010];
    void add(int x,int y)
    {
        tot++;
        o[tot].x=x;
        o[tot].y=y;
        o[tot].next=head[x];
        head[x]=tot;
    }
    void dfs(int now)
    {
        v[now]=1;
        flag[i][now]=1;
        for(int j=head[now];j;j=o[j].next){
            if(v[o[j].y])continue;
            dfs(o[j].y);
        }
    }
    int main()
    {
    //freopen("123.in","r",stdin);
    //freopen("123.out","w",stdout);
        n=read();m=read();
        for(i=1;i<=m;++i){
            tx=read();
            ty=read();
            t=read();
            add(tx,ty);
            if(t==2)
                add(ty,tx);
        }
        for(i=1;i<=n;++i){
            memset(v,0,sizeof(v));
            dfs(i);
        }
        for(i=1;i<=n;++i)
            for(f=i+1;f<=n;++f)
                if(flag[i][f]&&flag[f][i])
                    sum[i]++,sum[f]++;
        for(i=n;i>=1;--i)
            if(sum[i]>sum[0])
                sum[0]=sum[i],t=i;
        write(sum[0]+1);
        putchar(10);
        for(i=1;i<=n;++i)
            if(flag[i][t]&&flag[t][i])
                write(i),putchar(32);
        return 0;
    }
  • 相关阅读:
    ES6常用新特性
    jquery基础总结 -- 转载
    正则验证
    prop attr 到底哪里不一样?
    分页导航 获取当前页码 的 分页导航哦
    使用Bootatrap的心得
    使用padding来合理布局自己的容器类
    使用angular-ui-router替代ng-router
    使用jitpack来获取github上的开源项目
    关于移动端的UI事件分类
  • 原文地址:https://www.cnblogs.com/qywyt/p/9690153.html
Copyright © 2011-2022 走看看