思路:
贪心,对于某个防晒霜,把它分给它能满足的所有的牛中要求最严格的一个(若把所有能满足的区间按照左端点从小到大排序的话,则分给右端点最小(区间最短)的一个)。
实现:
1 #include2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 struct cow 9 {10 int minn, maxn;11 };12 13 struct lotion14 {15 int s, c;16 };17 18 cow a[2505];19 lotion t[2505];20 int C, L;21 22 bool cmp(const cow & c1, const cow & c2)23 {24 if (c1.minn != c2.minn)25 {26 return c1.minn < c2.minn;27 }28 return c1.maxn < c2.maxn;29 }30 31 bool cmp1(const lotion & l1, const lotion & l2)32 {33 return l1.s < l2.s;34 }35 36 int main()37 {38 cin >> C >> L;39 priority_queue