码迷,mamicode.com
首页 > 其他好文 > 详细

工件调度

时间:2016-08-20 21:46:35      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

这道题有些类似于我做的文件排版,不知道到的可以看看那到题http://www.cnblogs.com/Ateisti/p/5790854.html

而且还更简单一些。

 1 #include <cstdio>
 2 #include <conio.h>
 3 #include <vector>
 4 #include <cstdlib>
 5 #include <cstring>
 6 #include <iostream>
 7 using namespace std;
 8 int t,n,sum[505],f[505],sc[505],tot;
 9 int ans[505];
10 
11 int main( ){
12     scanf("%d%d",&t,&n);
13     for(int x=1;x<=n;x++){int a;scanf("%d",&a);sum[x]=sum[x-1]+a;}
14     memset(f,127/2,sizeof(f));
15     f[0]=0,f[1]=(t-sum[1])*(t-sum[1]);
16     for(int x=2;x<=n;x++){
17         for(int k=0;k<x;k++){
18             int he=sum[x]-sum[k];
19             he=t-he-(x-k-1);if(he<0)continue;
20             he=he*he;
21             if(f[k]+he<=f[x]){f[x]=f[k]+he,sc[x]=k;}    
22         }
23     }
24     printf("%d\n",f[n]);
25     int tot=n,cnt=1;ans[1]=n;
26     while(1){
27         if(sc[tot]==0)break;
28         ans[++cnt]=sc[tot];    
29         tot=sc[tot];
30     
31     }
32     ans[++cnt]=0;
33     for(int x=cnt;x>1;x--){
34         for(int y=ans[x]+1;y<=ans[x-1];y++){printf("%d ",sum[y]-sum[y-1]);}
35         printf("\n");
36     }
37     return 0;
38 }

 

工件调度

标签:

原文地址:http://www.cnblogs.com/Ateisti/p/5791207.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!