HNOI2005 狡猾的商人 差分約束 判環

2021-09-17 04:59:53 字數 805 閱讀 3268

[hnoi2005]狡猾的商人

u→v=c可以理解為sum[v]−sum[u−1]=c  (字首和)

定的sum[u→v]=c 不僅需要滿足sum[v]−sum[u−1]=c,還應該滿足sum[u−1]−sum[v]=−c。

接下來就是判斷是否存在環(判環)

對於不一定聯通的圖,每個入度為0的點都要判斷,這裡是判斷tot[i] == 0的點,tot[i]就是i結點訪問次數。

資料量小,判斷大於n可過,否則要dfs跑spfa

#include using namespace std;

#define inf 0x7fffffff

struct edge;

int cnt,head[100000];

edge edge[100000];

int book[10005],dis[10005],tot[100005],vis[100005],n,m;

int read()

while(c>='0'&&c<='9')

return x*dign;

}void add(int u,int v,int w)

bool spfa(int u)

} } }

return true;

}int main()

int f = 1;

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

} if(!f)printf("false\n");

else 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...