POJ 1364 King 差分約束

2021-09-11 05:25:30 字數 731 閱讀 1102

題意:國王的傻兒子會算一段序列的連續子串行的和,並且能告訴別人一段和大於k或者小於k,有些人想謀權篡位所以提了很多個decisions,說一段和大於或者小於k,國王的傻兒子想知道是否有合法序列滿足所有decisions

解法其實很直接…就是從0開始到n建邊約束就好,但是注意這題0不能當超級源點…因為它一直在變(因為這wa了好幾次)

code

#include #include #include #include #include #include #define maxn 5055

#define inf 19999999

using namespace std;

int n, m;

int u[maxn],v[maxn],w[maxn],nex[maxn],first[maxn];

int tot;

int vis[maxn],cnt[maxn],d[maxn];

void add(int x,int y,int z)

bool spfa()

d[n+2]=0;

while(!q.empty())

q.push(v[i]);}}

} }return true;

}int main()

if(s=="lt")

}for(i=0;i<=n;i++)

if(spfa())

else  }

}

poj 1364 King 差分約束

注意差分約束只能求 或 spfa判斷有無負權迴路。對於差分不等式,a b c 建一條 b 到 a 的權值為 c 的邊,求的是最短路,得到的是最大值 對於不等式 a b c 建一條 b 到 a 的權值為 c 的邊,求的是最長路,得到的是最小值。存在負環的話是無解,求不出最短路 dist 沒有得到更新 ...

poj 1364 King 差分約束

題目大意 有乙個序列。給定一些約束條件,格式為si ni oi ki,意思是序列中第si項到第si ni項的和 或 ki,oi表示 用 gt 表示 或 用 lt 表示 問這樣的序列是否存在。存在輸出 lamentable kingdomi 否則輸出 successful conspiracy 思路 ...

POJ1364 King 差分約束

鏈結 poj1364 題目大意 給你n和m,以及m個約束條件,對於每個約束條件給出si,ni,oi,ki,求是否有乙個n個元素的序列a能滿足這些約束條件。其中oi可以分別表示為gt 和lt 約束條件的定義為as i as i 1 as i ni ki 或asi asi 1 asi ni。解題報告 了...