2019 GDUT RC 1 Problem A(题解)

原题

题目大意

题目大概是讲给出n个[si,ti],和bi,s为开始时间,t为结束时间,b为在该时间段内所需求的桶数,b个桶会从s开始一直被占用直到t才回收,问整个过程开始时至少需要备用多少个桶。

题目分析

这道题的数据都很小可以直接暴力。设置一个d数组(时间轴),d[i]的定义为在i这一时刻所需要的桶的量。d数组初始化为0,每次输入一组数据s,t,b,然后用一个循环把d[s]到d[t]的值都加上b。最后只需要在遍历一次d数组找最大值输出即可。

代码:

 1 #include <cstdio>
 2 #include <cmath>
 3 #include <iostream>
 4 #include <cstring>
 5 #include <algorithm>
 6 #include <vector>
 7 #include <string>
 8 #include <utility>
 9 #include <queue>
10 #include <stack>
11 const int INF=0x3f3f3f3f;
12 using namespace std;
13 
14 int d[1001];
15 
16 int main()
17 {
18     int n;
19     cin>>n;
20     while(n--)
21     {
22         int s,t,b;
23         cin>>s>>t>>b;
24         for(int i=s;i<=t;i++)
25         d[i]+=b;
26     }
27     int ans=0;
28     for(int i=1;i<=1000;i++)
29     if(d[i]>ans) ans=d[i];
30     cout<<ans<<endl;
31     return 0;
32 }

猜你喜欢

转载自www.cnblogs.com/VBEL/p/10392432.html
今日推荐