我本想用数组代表房间,情况很复杂。
分析分析分析!!!!!
我还是顺序思维,把每个订单的天数看成连续的整体,填入分散的房间。应该倒过来想,把天数拆分开来,每一天最多需要的房间数即应开房间数。
用数组存储每天需要的房间数然后输出最大值不就好了嘛!!!!!!
还有读题目的时候能不能把数据范围看一下呢!!!!!开的数组太小了!!!!!
#include <iostream> #include <cstring> using namespace std; int main() { int n; int m; int Max = 0; int s[200]; cin >> n; int a, b, c; while(n--) { cin >> m; memset(s,0,sizeof(s)); Max = 0; for(int i = 0; i < m ; i ++) { cin >> a >> b >> c; for(int i = b; i < b+c; i++) s[i] += a; } for(int i = 1; i < 200; i ++) if(s[i] > Max) Max = s[i]; cout << Max << endl; } return 0; }
原文:http://www.cnblogs.com/ekinzhang/p/4373596.html