【luogu1220】关路灯
https://www.luogu.org/problem/show?pid=1220
假如当前老张在a处跑去关掉b处的路灯,那么a与b之间的路灯都可以顺手关掉。因此每一时刻关掉的路灯必定是连续的。
f(i,j,0)表示i~j的路灯全部关掉且老张处于最左边时的耗电。f(i,j,1)表示i~j的路灯全部关掉且老张处于最右边时的耗电。
状态转移方程:
f(i,j,0)=min{
f(i+1,j,0)+(dist[i+1]-dist[i])*(watt[1,i]+watt[j+1,n]),
f(i+1,j,1)+(dist[j]-dist[i])*(watt[1,i]+watt[j+1,n])
}
f(i,j,1)=min{
f(i,j-1,1)+(dist[j]-dist[j-1])*(watt[1,i-1]+watt[j,n]),
f(i,j-1,0)+(dist[j]-dist[i])*(watt[1,i-1]+watt[j,n])
}
watt[i,j]表示i~j的路灯的总功率。
边界条件:f(i,i,0 or 1)=∞,f(c,c,0 or 1)=0
∞不能太大,因为要用来运算。
#include <iostream>
#define maxn 60
#define inf 0x7ffffffffffffff0
using namespace std;
int n, c;
int dist[maxn], wattsum[maxn];
unsigned long long dp0[maxn][maxn], dp1[maxn][maxn];
int main()
{
cin >> n >> c;
for(int i = ; i <= n; i++)
{
cin >> dist[i] >> wattsum[i];
wattsum[i] += wattsum[i - ];
} for(int i = ; i <= n; i++)
dp0[i][i] = dp1[i][i] = inf;
dp0[c][c] = dp1[c][c] = ;
for(int len = ; len <= n; len++)
{
for(int i = , j = len; j <= n; i++, j++)
{
dp0[i][j] = min(dp0[i + ][j] + (dist[i + ] - dist[i]) * (wattsum[i] - wattsum[] + wattsum[n] - wattsum[j]), dp1[i + ][j] + (dist[j] - dist[i]) * (wattsum[i] - wattsum[] + wattsum[n] - wattsum[j]));
dp1[i][j] = min(dp1[i][j - ] + (dist[j] - dist[j - ]) * (wattsum[i - ] - wattsum[] + wattsum[n] - wattsum[j - ]), dp0[i][j - ] + (dist[j] - dist[i]) * (wattsum[i - ] - wattsum[] + wattsum[n] - wattsum[j - ]));
}
}
cout << min(dp0[][n], dp1[][n]) << endl;
return ;
}
【luogu1220】关路灯的更多相关文章
- [Luogu1220]关路灯(区间dp)
[Luogu1220]关路灯 题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏 ...
- luogu1220 关路灯
题目大意 路面上有一些开着的灯,每个灯有功率和它的位置,人在第c个灯处,行走速度1m/s.问怎样关灯能使耗能最小,输出这个耗能. 思路 #include <cstdio> #include ...
- 洛谷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 多瑞卡得到了一份有趣而高薪的工作.每天早晨他必须 ...
随机推荐
- java中this关键字解析
由于this关键字在Java程序中经常见到,笔者索性把它的用法总结一下,来和大家一到互相学习一下.总的来说this用在下面几个地方: (1)当局部变量和成员变量同名的时候,需要用this来加以区分 如 ...
- A Very Simple Problem
A Very Simple Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- 暑假练习赛 007 E - Pairs
E - Pairs Description standard input/outputStatements In the secret book of ACM, it’s said: “Glory f ...
- 路由知识 静态路由 rip eigrp ospf
第1章 路由选择原理 1.1 几个概念 1.1.1 被动路由协议 用来在路由之间传递用户信息 1.1.2 主动路由协议 用于维护路由器的路由表 R2#show ip route Codes: C - ...
- 交换知识 VLAN VTP STP 单臂路由
第1章 交换基础 1.1 园区网分层结构 层次 作用 出口层 广域网接入 出口策略 带宽控制 核心层 高速转发 服务器接入 路由选择 汇聚层 流量汇聚 链路冗余 设备冗余 路由选择 接入层 用户接入 ...
- cookie 子域名可以读父域名中的cookie
cookie 子域名可以读父域名中的cookie 如在 .ping.com域下注入cookie,则该子域下的网页如p1.ping.com.p2.ping.com 都能读取到cookie信息 path的 ...
- Jquery基础笔记
1.$(function(){ 等价于 window.onload=function(){ }) } 2 ...
- Java多线程synchronized关键字
synchronized关键字代表着同步的意思,在Java中被synchronized修饰的有三种情况 1.同步代码块 //锁为objsynchronized(obj){ while(true){ i ...
- java.io.File类操作
一.java.io.File类 String path="E:/222/aaa";//路径 String path1="aaa.txt"; File file= ...
- struts2 内容记录
多xml文件配置 在开发过程中我们经常会将每一张表(如:user表)的struts.xml文件分开,便于管理,故需要建立struts_user.xml文件管理请求等.那么需要用到inculde标签. ...