POJ 1364 差分約束

2021-07-22 01:23:11 字數 830 閱讀 1791

解題的思路比較奇葩。第一次見到啊,也不知道別人是怎麼看出來這種情況下就是差分約束也就是可以用到圖論,表示真的好迷啊。看來對差分約束的概念還很差呢。。

#include#include#include#include#includeusing namespace std;

const int maxn=10005;

const int inf=10000000;

int n,m,si,ni,ki;

char o[5];

int vis[maxn],d[maxn];

struct edge

edge[maxn];

int head[maxn],ins[maxn];

int cnt;

void init()

void add_edge(int u,int v,int w)

int spfa()

q.push(n+1);

d[n+1]=0;

ins[n+1]++;

while(!q.empty())}}

}return 1;

}int main()

for(int i=0;i<=n;i++)//建立n+1為連線所以的點為連通圖的特殊結點

add_edge(n+1,i,0);

int ans=spfa();

if(ans==-1)

printf("successful conspiracy\n");

else

printf("lamentable kingdom\n");

}return 0;

}

POJ 1364 差分約束

思路 把所有 變成 把所有 加一減一就好了 然後我們發現 圖不一定連通!怎麼辦呢 對於每乙個連通塊spfa就好了嘛 by siriusren include include include include define n 111 using namespace std char a 3 inq n...

POJ 1364 差分約束

題意 給出乙個數字序列 s 它有 m 個子序列 si 現在給出 m 個限制條件 第 i 個子序列的和 ki 或 第 i 個子序列的和 ki 思路 標準的差分約束,用s is i si 表示a1 a2.ai a 1 a 2.a i a1 a2 ai 的值,並且s0 0s 0 0 s0 0,所有s is...

poj 1364 差分約束

思路 設dis i 為從0點到第i點的序列總和。那麼對於a b gt k 來講意思是dis b a dis a k 對於a b lt k來講就是dis b a dis a dis a dis b a k 1 dis a b dis a k 1 那麼就可以根據公式來建邊了,用bellman ford演...