研究一下差分约束的题型。
大部分都是给出若干个条件求出一个最值
比如这道题给出了一些约束条件,可以想一想能否用差分约束来做,题目中出现了满足范围的约束,就可以往前缀和那方面靠拢,答案要求出集合Z最少包含多少个数,想一想能否用Xi表示1 ~ n选多少个数。
那么根据题目就需要满足以下条件。
由于题目中给出的数据范围是0 <=a ,b <= 50000,有参与处理前缀和,因此把每个数都加1方便运算。
1)Xi+1 >= Xi; ( 1 < i <= 50000)
2)Xi+1 - Xi <= 1;
3) Xb - Xa-1 >= ck;
约束条件找完之后看一下能否找到一个超级源点可以到达任意的点,只要能到达任意的点,那么一定能达到任意的边,反正不成立,因为可能存在孤立点。
根据题目要求可以中单每个点Xi >= 0的
观察第一个不等式组,可以发现建立一个超级源点X0 向 X1连一条边就可以遍历所有点。因此满足题意可以直接作答。
通过观察题目发现不存在无解情况,因为最坏的情况下我们把1 ~ 50001都放进集合Z中一定符合要求。
最终答案就是dist[50001];
请问用差分约束可以求出来哪些位置有数嘛