• POJ 3169 Layout


    查分约束好题,关键在于转化!

    #include<iostream>
    using namespace std;
    #define MAX 20020
    #define INF 999999
    struct Node{
        
    int u,v;
        
    int val;
    }node[MAX];
    int nv,ne,start;
    int dist[MAX];
    int bellman_DC()
    {
        
    int i,j,tmp,tag;
        
    for(i=1;i<=nv;++i)
            dist[i] 
    = INF;
        dist[start] 
    = 0;
        
    for(i=1;i<nv;++i)
        {
            tag 
    = 0;
            
    for(j=1;j<=ne;++j)
            {
                tmp 
    = dist[node[j].u]+node[j].val;
                
    if(tmp<dist[node[j].v])
                {
                    dist[node[j].v] 
    = tmp;
                    tag 
    = 1;
                }
            }
            
    if(tag == 0)
                
    return 0;
        }
        
    for(i=1;i<=ne;++i)
            
    if(dist[node[i].v]>dist[node[i].u]+node[i].val)
                
    return 1;
        
    return 0;
    }
    int main()
    {
        
    int i,j,a,b,flag,m1,m2,val,index;
        
    while(scanf("%d%d%d",&nv,&m1,&m2)!=EOF)
        {
            index 
    = 0;
            ne 
    = m1+m2;
            
    for(i=1;i<=m1;++i)
            {
                
    ++index;
                scanf(
    "%d%d%d",&a,&b,&val);
                node[index].u 
    = a;
                node[index].v 
    = b;
                node[index].val 
    = val;
            }
            
    for(i=1;i<=m2;++i)
            {
                
    ++index;
                scanf(
    "%d%d%d",&a,&b,&val);
                node[index].u 
    = b;
                node[index].v 
    = a;
                node[index].val 
    = -val;
            }
            start 
    = 1;
            flag 
    = bellman_DC();
            
    if(flag == 1)
                printf(
    "-1\n");
            
    else if(dist[nv]==INF)
                printf(
    "-2\n");
            
    else 
                printf(
    "%d\n",dist[nv]);
        }
        
    return 0;
    }

  • 相关阅读:
    python入门1
    查找字段 和查找组件
    DBGRID 拖动滚动条 和 鼠标滚轮的问题
    数据集 过滤时 RecordCount 属性
    查找字段 如何 过滤
    数据集控件 放在 数据模块 上后,如何写事件代码
    取TTable 过滤后的记录数
    判断 Windows操作系统是32位还是64位
    MatchText MatchStr 区别
    EClassNotFound
  • 原文地址:https://www.cnblogs.com/lvpengms/p/1662734.html
Copyright © 2020-2023  润新知