luogu1220 关路灯
题目大意
路面上有一些开着的灯,每个灯有功率和它的位置,人在第c个灯处,行走速度1m/s。问怎样关灯能使耗能最小,输出这个耗能。
思路

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; const int MAX_N = 60, INF = 0x3f3f3f3f;
int F[MAX_N][MAX_N][2], Pos[MAX_N], W[MAX_N];
int WPrefix[MAX_N];
int N, Start; void GetWPrefix()
{
for (int i = 1; i <= N; i++)
WPrefix[i] = WPrefix[i - 1] + W[i];
} int DP()
{
memset(F, INF, sizeof(F));
F[Start][Start][0] = F[Start][Start][1] = 0;
for (int len = 2; len <= N; len++)
for (int i = 1; i <= N - len + 1; i++)
{
int j = i + len - 1;
F[i][j][1] = min(F[i][j][1], F[i][j - 1][1] + (Pos[j] - Pos[j - 1]) * (WPrefix[i - 1] + WPrefix[N] - WPrefix[j - 1]));
F[i][j][1] = min(F[i][j][1], F[i][j - 1][0] + (Pos[j] - Pos[i]) * (WPrefix[i - 1] + WPrefix[N] - WPrefix[j - 1]));
F[i][j][0] = min(F[i][j][0], F[i + 1][j][0] + (Pos[i + 1] - Pos[i]) * (WPrefix[i] + WPrefix[N] - WPrefix[j]));
F[i][j][0] = min(F[i][j][0], F[i + 1][j][1] + (Pos[j] - Pos[i]) * (WPrefix[i] + WPrefix[N] - WPrefix[j]));
}
return min(F[1][N][0], F[1][N][1]);
} int main()
{
scanf("%d%d", &N, &Start);
for (int i = 1; i <= N; i++)
scanf("%d%d", Pos + i, W + i);
GetWPrefix();
printf("%d\n", DP());
}
luogu1220 关路灯的更多相关文章
- [Luogu1220]关路灯(区间dp)
[Luogu1220]关路灯 题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏 ...
- 洛谷P1220 关路灯
洛谷1220 关路灯 题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关 ...
- Luogu 1220 关路灯(动态规划)
Luogu 1220 关路灯(动态规划) Description 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项 ...
- 109.关路灯(区间dp)
1258 关路灯 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 查看运行结果 题目描述 Description 多瑞卡得到了一份有趣而高薪的工作.每 ...
- 洛谷P1220 关路灯(区间dp)
关路灯 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯.为了给村里节 ...
- 洛谷——P1220 关路灯
P1220 关路灯 题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉 ...
- 「LuoguP1220」 关路灯(区间dp
题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯. 为了给村 ...
- codevs1258关路灯
传送门 1258 关路灯 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 多瑞卡得到了一份有趣而高薪的工作.每天早晨他 ...
- codevs1258 关路灯(☆区间dp)
1258 关路灯 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 多瑞卡得到了一份有趣而高薪的工作.每天早晨他必须 ...
随机推荐
- bootstrap 字体颜色 对齐方式
一:字体代码:作用--颜色 1..text-muted:提示--浅灰色 2..text-primary:主要--蓝色 3..text-success:成功--浅绿色 4..text-info: ...
- PHP常用的一些函数:
背景:这一次是对一些函数进行整理,方便以后的使用. 1.date(); date()函数的作用是获取当前日期时间,由于PHP 5.0对date()函数进行了重写,因此,当前的日期时间函数比系统时间少了 ...
- C#通过SqlConnection连接查询更新等操作Sqlserver数据库
Sqlserver数据库连接方式有多种,这里只介绍最常用的通过SqlConnection和Sqlserver数据库用户名和密码验证来进行操作数据库. 数据库连接字符串: string connStri ...
- MySQL 执行计划中Extra的浅薄理解
1.using where: Extra中出现“Using where”,通常来说,意味着全表扫描或者在查找使用索引的情况下,但是还有查询条件不在索引字段当中. 如果需要回表也是用这个. 2.usin ...
- c++中std::set自定义去重和排序函数
c++中的std::set,是基于红黑树的平衡二叉树的数据结构实现的一种容器,因为其中所包含的元素的值是唯一的,因此主要用于去重和排序.这篇文章的目的在于探讨和分享如何正确使用std::set实现去重 ...
- 转:selenium自动化脚本错误总结
https://blog.csdn.net/zxy987872674/article/details/53141118
- CSS中的disable,hidden,readonly
项目中有时候需要对某个input进行隐藏或者禁止修改等. 需要隐藏某个input的时候就用hidden <input hidden="true" > 如果要禁止修改in ...
- 1.CentOS安装Redis
首要条件:安装VMware,在虚拟机中安装CentOS. 第一次接触CentOS的开发者最好是在虚拟机手动一步步进行安装,并且系统环境选择开发环境,这样可以避免后期自己要安装诸多运行库. 安装步骤: ...
- BZOJ 2096: [Poi2010]Pilots 单调队列
Code: #include<bits/stdc++.h> #define maxn 4000000 using namespace std; void setIO(string s) { ...
- javaWEB中web.xml配置文件相关
1.常用节点的执行顺序: context-param -> listenter -> filter -> servlet -> interceptor,其中有多个filter的 ...