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