zoukankan      html  css  js  c++  java
  • Xanadu(构图+最短路)

    题解:将修改几次1等价为构图时边的权值即可。跑单源最短路。

    #include<iostream>
    #include<cstdio>
    #include<queue>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    
    #define N 301
    #define LL long long
    int n;
    
    int sumedge;
    
    int head[N];
    LL dis[N];
    int vis[N];
    
    queue<int>q;
    
    struct Edge
    {
        
        int x,y,z,nxt;
        Edge(int x=0,int y=0,int z=0,int nxt=0):
        x(x),y(y),z(z),nxt(nxt){}
    }edge[N*N];
    
    void add(int x,int y,int z)
    {
        edge[++sumedge]=Edge(x,y,z,head[x]);
        head[x]=sumedge;
    }
    
    void spfa()
    {
        memset(dis,0x3f,sizeof(dis));
        dis[1]=0;q.push(1);vis[1]=1;
        while(!q.empty())
        {
            int now=q.front();q.pop();vis[now]=false;
            for(int i=head[now];i;i=edge[i].nxt)
            {
                int v=edge[i].y;
                if(dis[v]>dis[now]+edge[i].z)
                {
                    dis[v]=dis[now]+edge[i].z;
                    if(!vis[v])
                    {
                        vis[v]=true;
                        q.push(v);
                    }
                }
            }
        }
    }
    
    int main()
    {
        
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            int js=0;
            for(int j=1;j<=n;j++)
            {
                int x;
                scanf("%d",&x);
                if(x) add(i,j,js++);
            }
        }
        spfa();
          if(dis[n]==0x3f3f3f)printf("-1
    ");
        else printf("%lld
    ",dis[n]);
        return 0;
    }
  • 相关阅读:
    Win32++ Home Page
    CEGUI Home Page
    迁移DirectX11到VS2015 Win10
    Oracle常用查看表结构命令
    PLSQL常用配置
    PLSQL DEVELOPER
    WeblogicException
    java.nio.Buffer
    spring batch
    vi
  • 原文地址:https://www.cnblogs.com/zzyh/p/14873260.html
Copyright © 2011-2022 走看看