Advertisement

差分约束-糖果

阅读量:

糖果

在幼儿园中有 N 个小朋友, 老师打算为这些孩子分发糖果, 并确保每位小朋友都能获得

但是由于孩子们都有嫉妒心理,在分配东西时常常会提出若干具体的要求。例如小明不愿意让小红分到的糖果数量超过他自己的数量,在这种情况下 老师必须确保满足所有小朋友提出的 K 个条件。

在幼儿园里,糖果数量通常是有限制的。老师希望确定最少需要准备多少颗糖果以便让每个孩子都能拿到糖果,并且满足所有孩子的愿望。

输入格式
输入的第一行是两个整数 N,K。

接下来 K 行,表示分配糖果时需要满足的关系,每行 3 个数字 X,A,B。

如果 X=1 表示第 A 位孩子获得的糖果数量与第 B 位孩子相同;
如果 X=2 要求第 A 位孩子获得的糖果数量不超过第 B 位孩子的数量;
如果 X=3 则规定第 A 位孩子至少与第 B 位孩子同样多;
如果 X=4 必须满足第 A 位孩子的糖果比第 B 位孩子多;
X=5 则意味着第 A 位孩子最多只能获得与第 B 位孩子相同数量的糖果;
所有儿童编号从1开始一直到N。

输出一行数值以指示老师最少应准备多少颗糖果,并在无法满足所有小朋友的要求时输出 −1

数据范围
1≤N<105,
1≤K≤105,
1≤X≤5,
$1≤A,B≤

全部评论 (0)

还没有任何评论哟~