程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> poj 3169 Layout (差分約束+Bellman )

poj 3169 Layout (差分約束+Bellman )

編輯:C++入門知識

poj 3169 Layout (差分約束+Bellman )


 

題意:輸入N, ML, MD, N默示有N個牛按1-N排成一排,ML,默示有ML行,每行輸入A, B, D默示A牛和B牛最遠間隔為D, MD默示有MD行,每行輸入A,B,D默示A牛和B來間隔為D,求滿足所有前提的1-N的最大間隔。

比較簡單的差分約束,這個周周賽的A題

 

#include 
#include 
#include 
#include 
#include 
#include 
#include 
const int N = 210;
const int maxn = 1010;
const int maxm = 21000;
#define FOR(i,a,b) for(int i=a;i dis[edge[j].u] + edge[j].w)
            {
                dis[edge[j].v] = dis[edge[j].u] + edge[j].w;
                flag = 1;
            }
        }
        if(!flag)
            break;
    }
    if(flag==1)
        return -1;
    else if(dis[t]==INF)
        return -2;
    else
        return dis[t];
}
int main()
{
    int u,v,w,a,b;
    while(scanf(%d%d%d,&n,&a,&b)!=EOF)
    {
        cnt=0;
        FOR(i,0,a)
        {
            scanf(%d%d%d,&u,&v,&w);
            add(u,v,w);
        }
        FOR(i,0,b)
        {
            scanf(%d%d%d,&u,&v,&w);
            add(v,u,-w);
        }
      int ans = Bellman(1,n);
      cout<

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved