版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010639500/article/details/67651042
题目概述:
现在有一台机器,这台机器可以接受两种形式任务:(1)任务列表,任务列表里面有N个任务,对于第i个任务,机器在T时间开始执行,并在1个单位时间内做完。(2)临时任务,机器可以在任意时间接受一个临时任务,但任务列表里面的任务优先级要高于临时任务,也就是说当机器空闲的时候才会执行临时任务。现在机器已经接受一个任务列表。接下来会有M个临时任务,我们想知道每个临时任务何时被执行。为了简化问题我们可以认为这M个临时任务是独立无关即任务是可以同时执行的,互不影响。
代码如下:
#include<iostream>
#include<vector>
using namespace std;
void main()
{
int num1,num2;
cin>>num1>>num2;
vector<int>task;
//存储输入的task时间
for(int i=0;i<num1;i++)
{
int temp;
cin>>temp;
task.push_back(temp);
}
//存储断层,方便下一步查找
vector<int>base;//存储task中的断层
for(int i=0;i<num1-1;i++)
{
if(task[i]+1!=task[i+1])
base.push_back(task[i]+1);
}
base.push_back(task[num1-1]+1);
//进行查找
vector<int>res;
for(int i=0;i<num2;i++)
{
int temp3;
cin>>temp3;
for(int i=0;i<base.size();i++)
{
if(temp3<=base[i])
{
res.push_back(base[i]);
break;
}
}
}
for(int i=0;i<res.size();i++)
cout<<res[i]<<endl;
system("pause");
}
看到题目后的第一想法,可能还有很多需要改进的地方。