本來是要做帶權並查集才跳到這個題上的。。。但是最後懶省事寫了乙個差分約束。。。。唉
題解嘛——這題就是普通的差分約束吧??
不會差分約束的話,可以看一下這篇部落格,寫的很詳細很周全。
注意圖可能不聯通,這個時候要進行多遍spfa。而且注意同一組資料的話不用每次spfa都初始化!!!
**如下:
#include#include#include#include#include#include#define maxn 10010
using namespace std;
int t,n,m,s,t,v,edge_number;
int head[maxn],dis[maxn],done[maxn],len[maxn];
struct edgeedge[maxn<<1];
inline void add(int from,int to,int dis)
inline bool spfa(int x)
}} }
return true;
}int main()
for(int i=0;i<=n;i++)
if(!len[i])
if(spfa(i)==false)
if(flag==true)
printf("true\n");
} return 0;
}
HNOI2005 狡猾的商人
刁奼接到乙個任務,為稅務部門調查一位商人的賬本,看看賬本是不是偽造的。賬本上記錄了n個月以來的收入情況,其中第i 個月的收入額為ai i 1,2,3 n 1,n 當 ai大於0時表示這個月盈利ai 元,當 ai小於0時表示這個月虧損ai 元。所謂一段時間內的總收入,就是這段時間內每個月的收入額的總和...
HNOI2005狡猾的商人
傳送門 題目意思很簡單,意思是說給你一些區間和,要你判斷這些區間和是否合法。開始只想到了差分約束的方法,就是搞成字首和的形式 su m r sum l 1 w 且 su m r sum l 1 w 這樣利用spfa建圖,利用三角形不等式,即dis v dis x w i 每個條件建出sum r su...
HNOI2005 狡猾的商人
hnoi2005 狡猾的商人 time limit 10 sec memory limit 162 mb description 刁奼接到乙個任務,為稅務部門調查一位商人的賬本,看看賬本是不是偽造的。賬本上記錄了n個月以來的收入情況,其中第i 個月的收入額為ai i 1,2,3 n 1,n 當 ai...