这一道题我一直在想时间该怎么算。

看题解发现有个隐藏的贪心。

路径一定是左右扩展的,左右端点最多加+1(我竟然没发现!!)

这个性质非常重要!!

因此这道题用区间dp

f[i][j]表示关完i到j的路灯的消耗。

那么因为要算走的路程,那么还有一维表示当前人在左端点

还是右端点。

然后每次的消耗为当前走这一段的时间乘上这个时候还亮着的路灯

的总功率。

然后这个起点的意义就在于在起点的消耗为0,其他都为正无穷

#include<cstdio>
#include<cstring>
#include<algorithm>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
#define _for(i, a, b) for(int i = (a); i <= (b); i++)
using namespace std; const int MAXN = 1123;
int f[MAXN][MAXN][2], t[MAXN][MAXN];
int w[MAXN], a[MAXN], n, s; int main()
{
scanf("%d%d", &n, &s);
_for(i, 1, n) scanf("%d%d", &a[i], &w[i]); _for(i, 1, n)
_for(j, i, n)
t[i][j] = t[i][j-1] + w[j];
int sum = t[1][n];
_for(i, 1, n)
_for(j, i, n)
t[i][j] = sum - t[i][j]; memset(f, 0x3f, sizeof(f));
f[s][s][0] = f[s][s][1] = 0;
_for(d, 2, n)
_for(i, 1, n)
{
int j = i + d - 1;
if(j > n) break;
f[i][j][0] = min(f[i+1][j][0] + t[i+1][j] * (a[i+1]-a[i]), f[i+1][j][1] + t[i+1][j] * (a[j]-a[i]));
f[i][j][1] = min(f[i][j-1][0] + t[i][j-1] * (a[j]-a[i]), f[i][j-1][1] + t[i][j-1] * (a[j]-a[j-1]));
} printf("%d\n", min(f[1][n][0], f[1][n][1])); return 0;
}

洛谷 P1220 关路灯 (贪心+区间dp)的更多相关文章

  1. 洛谷P1220 关路灯 题解 区间DP

    题目链接:https://www.luogu.com.cn/problem/P1220 本题涉及算法:区间DP. 我们一开始要做一些初始化操作,令: \(p[i]\) 表示第i个路灯的位置: \(w[ ...

  2. 洛谷P1220 关路灯【区间dp】

    题目:https://www.luogu.org/problemnew/show/P1220 题意:给定n盏灯的位置和功率,初始时站在第c盏处. 关灯不需要时间,走的速度是1单位/秒.问把所有的灯关掉 ...

  3. 洛谷P1220关路灯【区间dp】

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

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

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

  5. 洛谷 P1220 关路灯(区间dp,前缀和)

    传送门 解题思路 先明确一下题意,c指的是路灯的编号而不是位置. 然后根据贪心,在从点i去关点j的路灯时,所有经过的路灯都会随手关掉(不耗时间),所以我们可以确定,若i点和j点的路灯已经关闭,那么区间 ...

  6. 洛谷 P1220 关路灯 题解

    Description 有 $n$ 盏路灯,每盏路灯有坐标(单位 $m$)和功率(单位 $J$).从第 $c$ 盏路灯开始,可以向左或向右关闭路灯.速度是 $1m/s$.求所有路灯的最少耗电.输入保证 ...

  7. 洛谷P1220 关路灯

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

  8. 洛谷——P1220 关路灯

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

  9. 洛谷 P1220 关路灯 区间DP

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

随机推荐

  1. JS一个经典闭包问题

    这里是记录一些本人在学习过程中觉得重要的知识点,记录下来以供日后查看,如有不对欢迎指正,望在前端的路上共勉! <!DOCTYPE html> <html lang="en& ...

  2. JavaScript 运行机制 & EventLoop

    JavaScript 运行机制 & EventLoop 看阮老师博客和自己的理解,记录的学习笔记,js的单线程和 事件EventLoop 机制. 1. JavaScript是单线程 JavaS ...

  3. myeclipse的git插件安装

    首先需要一个myeclies的Git插件EGit 点击下载5.0.1 官方网站

  4. 开发微信小程序必须要知道的事

    为什么是小程序? 为什么我们会开发小程序呢?或许是因为工作需要,或许是源于自己的追求(来自名利的欲望),但我要说--这是一种缘分,很美好的缘分,很多年后还值得庆幸的缘分 小程序目前可以分为三个阶段 一 ...

  5. BlogEngine.NET架构学习:Extension扩展实现

    之前有个系列文章介绍过BlogEngine.NET,其中也有关于插件的介绍:"BlogEngine.Net架构与源代码分析系列part9:开发扩展(上)--Extension与管理上的实现& ...

  6. STM32 关于头文件路径没添加错误问题(cannot open source input file "spi.h": No such file or directory)

    error:  #5: cannot open source input file "spi.h": No such file or directory 1.出现这种问题,首先要确 ...

  7. 异构关系数据库(MySql与Oracle)之间的数据类型转换参考

    一.MySQL到Oracle的数据类型的转变: 编号 MySQL ToOracle Oracle 1 GEOMETRY BLOB BLOB 2 GEOMETRYCOLLECTION BLOB BLOB ...

  8. [terry笔记]一个在线美化sql的网站

    http://www.dpriver.com/pp/sqlformat.htm 甚是好用.

  9. libvips

    libvips : an image processing library libvips is a 2D image processing library. Compared tosimilar l ...

  10. nutch如何修改regex-urlfilter.txt爬取符合条件的链接

    例如我在爬取学生在线的时候,发现爬取不到特定的通知,例如<中粮福临门助学基金申请公告>,通过分析发现原来通知的链接被过滤掉了,下面对过滤url的配置文件regex-urlfilter.tx ...