zoukankan      html  css  js  c++  java
  • 区间DP code[vs]1258 关路灯

    1258 关路灯

     

     时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 大师 Master
     
     
     
    题目描述 Description

    多瑞卡得到了一份有趣而高薪的工作。每天早晨他必须关掉他所在村庄的街灯。所有的街灯都被设置在一条直路的同一侧。

    多瑞卡每晚到早晨5点钟都在晚会上,然后他开始关灯。开始时,他站在某一盏路灯的旁边。

    每盏灯都有一个给定功率的电灯泡,因为多端卡有着自觉的节能意识,他希望在耗能总数最少的情况下将所有的灯关掉。

    多端卡因为太累了,所以只能以1m/s的速度行走。关灯不需要花费额外的时间,因为当他通过时就能将灯关掉。

    编写程序,计算在给定路灯设置,灯泡功率以及多端卡的起始位置的情况下关掉所有的灯需耗费的最小能量。

    输入描述 Input Description

    输入文件的第一行包含一个整数N,2≤N≤1000,表示该村庄路灯的数量。

    第二行包含一个整数V,1≤V≤N,表示多瑞卡开始关灯的路灯号码。

    接下来的N行中,每行包含两个用空格隔开的整数D和W,用来描述每盏灯的参数,其中0≤D≤1000,0≤W≤1000。D表示该路灯与村庄开始处的距离(用米为单位来表示),W表示灯泡的功率,即在每秒种该灯泡所消耗的能量数。路灯是按顺序给定的。

    输出描述 Output Description

    输出文件的第一行即唯一的一行应包含一个整数,即消耗能量之和的最小值。注意结果小超过1,000,000,000。

    样例输入 Sample Input

    4

    3

    2 2

    5 8

    6 1

    8 7

    样例输出 Sample Output

    56

    数据范围及提示 Data Size & Hint

    贴代码

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 using namespace std;
     6 int n,v;
     7 int in;
     8 int d[1010],w[1010];
     9 int f[1010][1010],g[1010][1010];
    10 //f[i][j] 关掉[i,j]的代价,现在处在i,从右向左而来
    11 //g[i][j] 关掉[i,j]的代价,现在处在j,从左向右而来 
    12 
    13 int main(){
    14     scanf("%d",&n);
    15     scanf("%d",&v);
    16     for(int i=1;i<=n;i++) scanf("%d%d",&d[i],&in),w[i]=w[i-1]+in;
    17     memset(f,0x3f3f3f3f,sizeof(f));
    18     memset(g,0x3f3f3f3f,sizeof(g));
    19     f[v][v]=0;
    20     g[v][v]=0; 
    21     for(int i=2;i<=n;i++)//已关的数目 
    22         for(int j=(v>=i?v-i+1:1);j<=v&&j<=n-i+1;j++){//左端点 
    23             int e=j+i-1;//右端点 
    24             f[j][e]=min(f[j+1][e]+(d[j+1]-d[j])*(w[n]+w[j]-w[e]),g[j+1][e]+(d[e]-d[j])*(w[n]+w[j]-w[e]));
    25             g[j][e]=min(f[j][e-1]+(d[e]-d[j])*(w[n]+w[j-1]-w[e-1]),g[j][e-1]+(d[e]-d[e-1])*(w[n]+w[j-1]-w[e-1]));
    26         }
    27     printf("%d
    ",min(f[1][n],g[1][n]));
    28     return 0;
    29 }
  • 相关阅读:
    [kafka] 005_kafka_Java_API
    [kafka] 004_kafka_安装运行
    [kafka] 003_kafka_主要配置
    [kafka] 002_kafka_相关术语详细解析
    [kafka] 001_kafka起步
    [随想感悟] 《归去来兮辞·并序》 赏析
    [hadoop] 一些基础概念
    [kylin] 部署kylin服务
    CSAPP 读书笔记
    ubuntu下安装vmTools, 和共享文件
  • 原文地址:https://www.cnblogs.com/zwube/p/6808610.html
Copyright © 2011-2022 走看看