/*
1、这个是动态规划科室安排的问题,以此类推其他问题;
2、Node节点保存的是想要占用科室的时间,开始-结束,即代表一个单位的用时;
*/
using Node = struct node;
struct node{
int begin;//开始时间
int end;//结束时间
bool flag;//这个是查看是否已经安排过这个单位
};
void getTime( vector<Node> &v ) { //v必须是根据开始时间begin拍好顺序的
int isContinue = v.size() ;
vector<vector<Node>> list;
while ( isContinue ) {
int first = -1;
int second = 0;
vector<Node> temp;
for (auto begin = v.begin(); begin != v.end(); ++begin ) {
if ( begin->flag==true ) {
if ( -1==first ) {
first = begin->begin;
second = begin->end;
begin->flag = false;
temp.push_back( *begin );
--isContinue;
}
else {
if ( second<begin->begin ) {
second = begin->end;
temp.push_back( *begin );
begin->flag = false;
--isContinue;
}
}
}
}
list.push_back( temp );
}
for (auto begin = list.begin(); begin != list.end(); ++begin ) {
for (auto sonBegin = begin->begin(); sonBegin != begin->end(); ++sonBegin ) {
cout << sonBegin->begin << "---" << sonBegin->end << " ";
}
cout << endl;
}
}
06_动态规划科室
最新推荐文章于 2020-10-28 00:11:36 发布