思路:这道题目应该说看懂题意很重要。看懂之后就很简单了。
有一个烧烤机,每个单位时间最多能烤 m 块肉,现在有 n 个人来买烤肉,每个人到达时间为 si,离开时间为 ei,点的烤肉数量为 ci,点的烤肉所需烘烤时间为 di,其实这边的ci和di有点描述的不清楚。明白一点的描述应该说的是,点的烤肉体积为ci,需要等待的时间为di。
每个人要烤的肉可以分成若干份在同时烤,问是否存在一种方案可以满足所有顾客的需求。
这边所用到的技巧是,将时间段离散化,方法是将结束时间和开始时间一起从小到大排序,就可以得到所有的时间段。这个时间段向超级汇点走的最大流量为时间间隔dis*n(每单位时间可以烤的肉的数量)每一个顾客可以向合适的一个时间段内走流量,最后判断总流量是否等于需求的数量就可以了。
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace