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

poj 3184 Finicky Grazers

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

poj 3184 Finicky Grazers

#include <iostream>#include <cstdio>#include <cstring>using namespace std;int dp[110000],p[11000],p_low[11000],p_up[11000];int max(int a,int b){    return a>b?a:b;}int min(int a,int b){    return a<b?a:b;}int abs(int n){    return n>0?n:-n;}int main(){    int n,i,j,l,d,t;    scanf("%d%d",&n,&l);    for (i=0; i<n; i++)    {        scanf("%d",p+i);    }    if (n == 1)    {        printf("0n");        return 0;    }    d=l/(n-1);    p_low[0]=0;    p_up[0]=0;    p_low[n-1]=l;    p_up[n-1]=l;    for (i=1; i<n-1; i++)    {        p_low[i]=max(d*i,l-(d+1)*(n-i-1));        if (p_low[i] < 0) p_low[i]=0;        p_up[i]=min((d+1)*i,l-d*(n-i-1));        if (p_up[i] > l) p_up[i]=l;    }    memset(dp,0x3f,sizeof(dp));    dp[0]=p[0];    for (i=1; i<n; i++)    {        for (j=p_up[i]; j>=p_low[i]; j--)        { t=j-d; dp[j]=0x3f3f3f3f; if (t >= p_low[i-1] && t <= p_up[i-1])         dp[j]=min(dp[j],dp[t]+abs(j-p[i])); t--; if (t >= p_low[i-1] && t <= p_up[i-1])     dp[j]=min(dp[j],dp[t]+abs(j-p[i]));        }    }    printf("%dn",dp[l]);}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376852.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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