栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 1513 Scheduling Lectures

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 1513 Scheduling Lectures

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<string>#include<queue>#include<algorithm>#include<vector>#include<stack>#include<list>#include<iostream>#include<map>using namespace std;#define inf 0x3f3f3f3f#define Max 110int max(int a,int b){return a>b?a:b;}int min(int a,int b){return a<b?a:b;}int dp[1100][1100],L,C,n;int c[1100][1100];int a[1100],sum[1100];int up[1100],low[1100];int rec;int num;int main(){    int i,count=1,j,k;    while(scanf("%d",&n),n)    {        scanf("%d%d",&L,&C);        num=0;sum[0]=0;        int tmp=0;        for(i=1;i<=n;i++)        { scanf("%d",&a[i]); sum[i]=sum[i-1]+a[i]; if(sum[i]-sum[tmp]>L) {     num++;     tmp=i-1;     up[num]=tmp;         }        }        num++;        up[num]=n;        tmp=n;        rec=num;        low[num]=n;        for(i=n-1;i>=0;i--)        { if(sum[tmp]-sum[i]>L) {     tmp=i+1;     rec--;   low[rec]=i+1; }        }        for(i=1;i<=num;i++)        { for(j=low[i];j<=up[i];j++) {     dp[i][j]=inf;     if(i==1)     {         dp[i][j]=0;         if(L-sum[j]>=1&&L-sum[j]<=10)  dp[i][j]-=C;         else if(L-sum[j]>10)  dp[i][j]+=(L-sum[j]-10)*(L-sum[j]-10);         continue;     }     for(k=(up[i-1]<j-1)?up[i-1]:j-1;sum[j]-sum[k]<=L&&k>=low[i-1];k--)     {         tmp=0;         if(L-(sum[j]-sum[k])>=1&&L-(sum[j]-sum[k])<=10)         tmp-=C;         else if(L-(sum[j]-sum[k])>10)         tmp+=(L-(sum[j]-sum[k])-10)*(L-(sum[j]-sum[k])-10);         dp[i][j]=min(dp[i][j],dp[i-1][k]+tmp);} }        }        printf("Case %d:nnMinimum number of lectures: %dnTotal dissatisfaction index: %dnn",count++,num,dp[num][n]);    }}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/377305.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号