传送门

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
 
【题目大意】
把路灯都关了的最小花费。
【思路】
区间dp
从V开始关灯 所关 的灯一定是一段连续的,因为你经过了这个路灯不可能不关。
这一段连续的序列是从V点开始扩展的。
f[i][j][0]为i--j的灯都关了之后你是站在i位置的,f[i][j][1]为你站在j位置。
那么当你发生状态转移时,假设i--j你都关了,那么浪费的电能就是你走的时间*(总功率-你关了的(i--j)的功率和)前缀和就好啦。
【code】
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,p;
int d[],w[],f[][][];
int main()
{
scanf("%d%d",&n,&p);
for(int i=;i<=n;i++)
{
scanf("%d%d",&d[i],&w[i]);
w[i]+=w[i-];
}
memset(f,/,sizeof(f));
f[p][p][]=f[p][p][]=;
for(int i=p;i>=;i--)
for(int j=i+;j<=n;j++)
{
f[i][j][]=min(f[i][j][],f[i+][j][]+(d[i+]-d[i])*(w[n]-(w[j]-w[i])));
f[i][j][]=min(f[i][j][],f[i+][j][]+(d[j]-d[i])*(w[n]-(w[j]-w[i])));
f[i][j][]=min(f[i][j][],f[i][j-][]+(d[j]-d[i])*(w[n]-(w[j-]-w[i-])));
f[i][j][]=min(f[i][j][],f[i][j-][]+(d[j]-d[j-])*(w[n]-(w[j-]-w[i-])));
}
printf("%d\n",min(f[][n][],f[][n][]));
return ;
}
 

codevs1258关路灯的更多相关文章

  1. codevs1258 关路灯(☆区间dp)

    1258 关路灯  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master     题目描述 Description 多瑞卡得到了一份有趣而高薪的工作.每天早晨他必须 ...

  2. [CODEVS1258]关路灯

    题目描述 Description 多瑞卡得到了一份有趣而高薪的工作.每天早晨他必须关掉他所在村庄的街灯.所有的街灯都被设置在一条直路的同一侧. 多瑞卡每晚到早晨5点钟都在晚会上,然后他开始关灯.开始时 ...

  3. 洛谷P1220 关路灯

    洛谷1220 关路灯 题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关 ...

  4. Luogu 1220 关路灯(动态规划)

    Luogu 1220 关路灯(动态规划) Description 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项 ...

  5. 109.关路灯(区间dp)

    1258 关路灯  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master 题解 查看运行结果 题目描述 Description 多瑞卡得到了一份有趣而高薪的工作.每 ...

  6. 洛谷P1220 关路灯(区间dp)

    关路灯 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯.为了给村里节 ...

  7. 洛谷——P1220 关路灯

    P1220 关路灯 题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉 ...

  8. 「LuoguP1220」 关路灯(区间dp

    题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯. 为了给村 ...

  9. 【洛谷P1220】关路灯

    题目有点难描述,内容请直接看原题.. 题解: 可以发现人在关路灯时无论走什么样的路径,从宏观上来看被关的灯总是构成一段包含初始点的连续区间.比如要关掉下标为 l (l < st)的灯,则一定要先 ...

随机推荐

  1. Mac OS X 下安装python的MySQLdb模块

    参考资料: mac os x下python安装MySQLdb模块   http://www.codeif.com/post/1073/ MAC OSX使用Python安装模块有关问题  http:// ...

  2. WebGIS开发之用openlayers加载离线百度地图

    因为项目需要,只有内网环境,没有外网环境,所以需要下载地图瓦片. 一.下载瓦片地图 这个可以自行在网上找一些地图瓦片下载器,下好的瓦片地图是分级的.大概如图这种类型. 二.在地图上显示标记 首先使用o ...

  3. Dfs学习经验(纸上运行理解DFS)【两道题】

    首先我想吐槽的是,在CSDN上搞了好久还是不能发博客,就是点下发表丝毫反应都没有的,我稍微百度了几次还是没有找到解决方法,在CSDN的BBS上也求助过管理员但是没有收到答复真是烦躁,导致我新生入学以来 ...

  4. Linux多线程实例 定时重启httpd和mysqld

    #include <stdio.h> #include <pthread.h> void *start_routine(void *arg) { while(1) { syst ...

  5. [Tools] Convert SVG to a PDF in Node with PDFKit and SVG.js

    Given a epxress application and an svg template, we want to draw some text, date onto it and convert ...

  6. [WASM] Create a New Rust/Webpack Project using the rust-webpack Template

    Previous to this post, we set up our own Rust/wasm project from scratch. The Rust/wasm team ships a ...

  7. [Javascript] Replicate JavaScript Constructor Inheritance with Simple Objects (OLOO)

    Do you get lost when working with functions and the new keyword? Prototypal inheritance can be compl ...

  8. opencms 安装出现以下的问题:Your &#39;max_allowed_packet&#39; variable is set to less than 16777216 Byte (16MB).

    一.问题 在安装opencms是会出现例如以下错误: MySQL system variable 'max_allowed_packet' is set to 1048576 Byte (1MB). ...

  9. hive:Access denied for user &#39;root&#39;@&#39;%&#39;

    配置hive全分布模式时候,在mysql里面创建用户:create user 'hive' identified by 'hive'; 然后给hive帐号分配全部权限: grant all privi ...

  10. ScaleYViewPager

    https://github.com/eltld/ScaleYViewPager