main
黄海 2 years ago
parent 02d810996d
commit fec930aaf0

@ -3,16 +3,16 @@ using namespace std;
const int N = 1000010;
#define int long long
#define endl "\n"
int n, m; // 天数和订单的数量
int r[N]; // 第i天学校有r[i]个教室可借用
int d[N], s[N], t[N]; // 借的教室数目、从第s天借到t天
int b[N]; // 差分数组
bool check(int x) { // 判断能不能通过x个人
memset(b, 0, sizeof(b)); // 每次判断都要先初始化差分数组
int sum = 0; // 记录需要借的教室数
int n, m; // 天数和订单的数量
int r[N]; // 第i天学校有r[i]个教室可借用
int d[N], s[N], t[N]; // 借的教室数目、从第s天借到t天
int b[N]; // 差分数组
bool check(int x) { // 判断能不能通过x个人
memset(b, 0, sizeof b); // 每次判断都要先初始化差分数组
int sum = 0; // 记录需要借的教室数
for (int i = 1; i <= x; i++) {
b[s[i]] += d[i]; // 因为只会对在s~l之间要借用教室的人产生影响所以可以差分
b[t[i] + 1] -= d[i]; // 差分//注意是t[i]+1因为要包含t[i]这个点
b[t[i] + 1] -= d[i]; // 差分,注意:是t[i]+1因为要包含t[i]这个点
}
for (int i = 1; i <= n; i++) {
sum += b[i]; // 因为cf是差分数组所以sum就是在第i天的借教室的总数

Loading…
Cancel
Save