题目大意
给定\(N\)个区间,每个区间有左端点和右端点,问从每个区间选择一个数字,使得这些数字加起来为0,如果能,输出“Yes”,并且输出这些数字,否则输出“No”,
题解
这个题如果只是输出Yes或者No,我们将所有的左端点加起来,所有的右端点加起来,这就是所有数的范围,如果这个范围内有0,则是Yes,否则就是No
输出方案呢?
假设答案的范围是\([lsum,rsum]\),可以肯定的是\(lsum \leq 0,rsum \geq 0\),如果我们想要结果取0,那么答案需要偏移\(|lsum|\)那么多,我们贪心的想,从第一个区间开始,我们尽可能多的偏移,偏移量为\(r[i]-l[i]\),如果不够的话,则偏移\(|lsum|-l[i]\),后面所有的数都不发生偏移即可,所以这个题考查贪心
标签:输出,No,Sum,偏移,端点,lsum,ABC362C,Yes From: https://www.cnblogs.com/sdfzls/p/18302175