《程序设计语言综合设计》第四周上机练习——3 开机方案

Posted miaohengming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《程序设计语言综合设计》第四周上机练习——3 开机方案相关的知识,希望对你有一定的参考价值。

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 int n,k,i,j,a[100005],b[100004],m=0;
 5 int main()
 6 {
 7     cin>>n>>k>>a[i];
 8     for(i=1;i<n;i++) {cin>>a[i];b[i]=a[i]-a[i-1];}//输入
 9     sort(b+1,b+n);//将b从小到大排序
10     for(i=1;k++<n;m+=b[i++]-1){}//每次连接时间距离最近的任务,使m增量最小
11     cout<<m+n<<endl;//输出
12 }

与第三周的练习“不诚实的卖家”思路基本一致:

1.当无能量限制时,时间m自然等于n(每个任务做完就把电脑关掉)

2.当有能量限制时,每次循环,需找到相邻的两个任务,使得连续完成它们“多花费的时间”最少

例如数据:

10 5
1 2 5 6 8 11 13 15 16 20(数组a)
先把“每组相邻任务连续完成多花费的时间”记录到数组b:b[i]=a[i]-a[i-1]-1;
得到数组b:0,2,0,1,2,1,1,0,3;
由于能量为5,任务为10,故需要把(10-5)组任务连在一起完成;
即10-5次循环,每次m+=b[i]min;
过程:m=n=10;
m+=0,0,0,1,1;
m=12;

以上是关于《程序设计语言综合设计》第四周上机练习——3 开机方案的主要内容,如果未能解决你的问题,请参考以下文章

《程序设计语言综合设计》第二周上机练习——4 美丽数列

201971010109 2061-2017《java程序设计》第四周学习感想

第四周上机练习

第四周上机练习

第四周上机练习

第四周上机练习