zoukankan      html  css  js  c++  java
  • HDU 6026 Deleting Edges

    最短路。

    先建一个只包含最短路的有向无环图,每一个点选择任意一条入边即可生成一个树形图,那么树的种类就等于每个点的入度乘积。

    #include <bits/stdc++.h>
    using namespace std;
    
    const long long mod = 1e9+7;
    int n;
    char s[60][60];
    int dis[60],f[60];
    int in[60];
    
    void spfa()
    {
        queue<int>Q;
        for(int i=0;i<n;i++) f[i]=0,dis[i] = 0x7FFFFFFF;
        dis[0]=0; Q.push(0); f[0]=1;
    
        while(!Q.empty())
        {
            int h = Q.front(); Q.pop(); f[h]=0;
            for(int i=0;i<n;i++)
            {
                int val = s[h][i]-'0';
                int to = i;
                if(val==0) continue;
                if(dis[h]+val<dis[to])
                {
                    dis[to] = dis[h]+val;
                    if(f[to]==0)
                    {
                        f[to]=1;
                        Q.push(to);
                    }
                }
            }
        }
    }
    
    int main()
    {
        while(~scanf("%d",&n))
        {
            for(int i=0;i<n;i++) scanf("%s",s[i]);
            spfa();
    
            memset(in,0,sizeof in);
            for(int i=0;i<n;i++)
            {
                for(int j=0;j<n;j++)
                {
                    if(i==j) continue;
                    int val = s[i][j]-'0';
                    if(val==0) continue;
                    if(dis[i]+val == dis[j])
                    {
                        in[j]++;
                    }
                }
            }
    
            long long ans=1;
    
            for(int i=0;i<n;i++)
            {
                if(in[i]==0) continue;
                ans = ans* (long long)in[i]%mod;
            }
    
            printf("%lld
    ",ans);
    
        }
        return 0;
    }
  • 相关阅读:
    HbuildeX项目打包
    百度地图(vue)
    压缩图片
    安卓移动端唤起拨号与邮箱
    上传图片 原生或vant
    git从零开始
    HbuilderX,监视物理按键
    gitlab备份and恢复数据
    ⑨.kubernetes 之ingress
    ⑧.kubernetes pod调度
  • 原文地址:https://www.cnblogs.com/zufezzt/p/6821669.html
Copyright © 2011-2022 走看看