zoukankan      html  css  js  c++  java
  • 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;
    }

  • 相关阅读:
    补结对编程四则运算(结对伙伴)
    alpha发布(技术随笔)
    第四周 更新Scrum站立会议
    第四周 技术随笔psp
    第四周 课堂Scrum站立会议
    更新-补四则运算(结对编程)
    补交git、ssh
    补第二周四人小组WBS/NABCD
    补充第二周燃尽图
    修改第二周站立会议
  • 原文地址:https://www.cnblogs.com/lvpengms/p/1662734.html
Copyright © 2011-2022 走看看