节能

时间限制:1000 ms  |  内存限制:65535 KB
难度:5
描述

Dr.Kong设计的机器人卡多越来越聪明。最近市政公司交给卡多一项任务,每天早晨5:00开始,它负责关掉ZK大道右侧上所有的路灯。

卡多每到早晨5:00准会在ZK大道上某盏路灯的旁边,然后他开始关灯。每盏灯都有一定的功率,机器人卡多有着自觉的节能意识,它希望在关灯期间,ZK大道右侧上所有路灯的耗电量总数是最少的。

机器人卡多以1m/s的速度行走。假设关灯动作不需要花费额外的时间,因为当它通过某盏路灯时就顺手将灯关掉。

请你编写程序,计算在给定路灯设置,灯泡功率以及机器人卡多的起始位置的情况下,卡多关灯期间,ZK大道上所有灯耗费的最小能量。

输入
有多组测试数据,以EOF为输入结束的标志
每组测试数据第一行: N 表示ZK大道右侧路灯的数量 (2≤ N ≤ 1000)
第二行: V 表示机器人卡多开始关灯的路灯号码。 (1≤V≤N)
接下来的N行中,每行包含两个用空格隔开的整数D和W,用来描述每盏灯的参数

D表示该路灯与ZK大道起点的距离 (用米为单位来表示),
W表示灯泡的功率,即每秒该灯泡所消耗的能量数。路灯是按顺序给定的。
( 0≤D≤1000, 0≤W≤1000 )

输出
输出一个整数,即消耗能量之和的最小值。注意结果小于200,000,000
样例输入
4
3
2 2
5 8
6 1
8 7
样例输出
56
来源
第四届河南省程序设计大赛

解题思路:

本题是一道Dynamic Programming的题目,机器人关灯要么是去左边关灯,或者是去右边关灯,也即要关闭的下一个路灯要么是从已关闭路段的左端过去的,要么是从已关闭的路段的右端过去的,定义:

DP[i][j][0]表示i到j的路灯都已经关闭,机器人在路灯i的位置,此时已经消耗的最小电能

DP[i][j][1]表示i到j的路灯都已经关闭,机器人在路灯j的位置,此时已经消耗的最小电能

则状态转移式:

DP[i][j][0] = min(DP[i+1][j][0]+[i+1,j]路段以外未关闭路灯在机器人从i+1走的i期间消耗的电能,DP[i+1][j][1]+[i+1,j]路段以外未关闭路灯在机器人从j走到i期间消耗的电能)

DP[i][j][1] = min(DP[i][j-1][0]+[i,j-1]路段以外未关闭路灯在机器人从i走到j期间消耗的电能,DP[i][j-1][1]+[i,j-1]路段以外未关闭路灯在机器人从j-1走到j期间消耗的电能)

AC代码:

 #include<algorithm>
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
const int N = ;
int dp[N][N][],dw[N][N],st[N],co[N];
int main()
{
int n,s,v,sum;
while(scanf("%d",&n)!=EOF)
{
memset(dw,,sizeof(dw));
sum = ;
scanf("%d",&v);
for(int i =; i<=n; i++)
{
scanf("%d %d",&st[i],&co[i]);
sum =sum+co[i];
}
for(int i=;i<=n;i++)
for(int j=i;j<=n;j++)
dw[i][j] = dw[i][j-]+co[j];
for(int i = v-; i>; i--)
{
dp[i][v][] = dp[i+][v][]+(sum-dw[i+][v])*(st[i+]-st[i]);
dp[i][v][] = dp[i][v][] +(sum-dw[i][v])*(st[v]-st[i]);
}
for(int j =v+; j<=n; j++)
{
dp[v][j][] =dp[v][j-][]+(sum-dw[v][j-])*(st[j]-st[j-]);
dp[v][j][] =dp[v][j][]+(sum-dw[v][j])*(st[j]-st[v]);
} for(int i =v-;i>;i--)
{
for(int j =v+; j<=n; j++)
{
dp[i][j][] = min(dp[i+][j][]+(sum-dw[i+][j])*(st[i+]-st[i]),
dp[i+][j][]+(sum-dw[i+][j])*(st[j]-st[i]));
dp[i][j][] = min(dp[i][j-][]+(sum-dw[i][j-])*(st[j]-st[i]),
dp[i][j-][]+(sum-dw[i][j-])*(st[j]-st[j-]));
}
} printf("%d\n", min(dp[][n][], dp[][n][]));
}
return ;
}

nyoj304 节能的更多相关文章

  1. C-RAN 集中化、协作化、云化、绿色节能(4C)

    中国移动C-RAN力拼第4个C:2018年6月外场组网验证 http://www.c114.net ( 2016/11/22 07:41 ) C114讯 11月22日早间消息(子月)2009年,中国移 ...

  2. [置顶] LED办公楼宇照明节能方案及城市夜景照明节能方案

    LED照明办公楼宇节能方案 .通用标准灯头,可直接替换现有卤素灯.白炽灯.荧光灯.

  3. 第四届河南省ACM 节能 区间DP

    1001: 节 能 时间限制: 1 Sec  内存限制: 128 MB 提交: 21  解决: 9 [提交][状态][讨论版] 题目描述 Dr.Kong设计的机器人卡多越来越聪明.最近市政公司交给卡多 ...

  4. 最课程阶段大作业06:U度节能平台控制系统

    除了互联网项目,当今社会还有一个概念非常流行,那就是:物联网.什么是物联网?物联网是通过传感设备,按约定的协议,把任意物品与互联网相连接,进行信息交换和通信,以实现智能化识别.定位.跟踪.监控和管理的 ...

  5. 客户机容易随机出现自动重启、游戏卡问题?不妨优化下BIOS中节能技术!

    相信一些玩主板超频的人都知道,给CPU加电压能够提升CPU的处理速度,很多超频爱好者通过采购超频性能较好,且价格较低的主板和CPU来玩超频,并且通过一些参数的问题能让屌丝设备发挥出高富帅的性能.但是玩 ...

  6. 关闭SSD(固态硬盘)节能功能 提搞SSD性能

     此方法可以缓解比如QQ聊天时能明显感觉到打字过程不连续,0.1s左右的间歇停顿,操作系统并不会锁死,系统突然停止响应,硬盘灯狂闪,鼠标指针成为圆圈,点什么都没反应,这种状况可能会持续1-2分钟, ...

  7. 行车记+翻车记:.NET Core 新车改造,C# 节能降耗,docker swarm 重回赛道

    非常抱歉,10:00~10:30 左右博客站点出现故障,给您带来麻烦了,请您谅解. 故障原因与博文中谈到的部署变更有关,但背后的问题变得非常复杂,复杂到我们都在怀疑与阿里云服务器 CPU 特性有关. ...

  8. C语言普通写法实现:针对多次同步失败的节能处理机制

    程序不美, 不来一一整理了. 以后有时间可以把这个功能封装为一个类的对象来操作.即使不封装为类,至少也该封装为一个独立的函数吧... 关键代码摘要如下: 无线同步信号发射端,每分钟发一次,每次发射的时 ...

  9. 认识 Azure

    本文为官网摘录总结

随机推荐

  1. [Contest20180405]抑制「超我」

    古明地恋(koishi)和计算器(calculator)是好朋友.恋恋有一个神奇的计算器,可以进行两个数在模$2^n$意义下的加法运算.计算器上有一个寄存器,一开始寄存器中的数为$0$,每当恋恋输入一 ...

  2. ubuntu下python3及idle3的安装

    一.使用以下命令检查自己的系统下是否有python3 python3 --version 如果出现类似“command not found",则说明你需要安装python3.如果能够出现py ...

  3. win10 彻底删除mysql步骤

    转载自:https://blog.csdn.net/sxingming/article/details/52601250 1. 停止MySQL服务 开始->所有应用->Windows管理工 ...

  4. WebLogic Server的密码复杂性规则设置

    WebLogic Server默认的密码复杂性规则是长度为8位以上,必须包含数字和字母,但对于很多企业的安全而言是不足够的,因此WebLogic Server在Security模块中提供了Passwo ...

  5. C#之Hello World(入门 )

    C#是一种简单.现代.面向对象和类型安全的编程语言. C#由C和C++发展而来.C#(英文发音C sharp)牢固地植根于C和C++语言族谱中,是Microsoft专门为使用.NET平台而创建的. • ...

  6. iOS: 格式化新浪微博/QQ说说等等的发布时间

    介绍:对于一些社交工具,我们可以发布一些说说或者心情什么的,如新浪微博,QQ,微信等,发布成功后,上面都会有一个发布的时间. 这个时间并不是具体的NSDate类型,而是经过格式化过的符合一般标准的模式 ...

  7. Android百度地图(二)结合方向传感器我们自己定位哪里走

    Android百度地图(二)结合方向传感器我们自己定位哪里走 本文代码在http://blog.csdn.net/xyzz609/article/details/51943556的基础上进一步改动.有 ...

  8. Yii使用公共函数

    在网站项目中,没必要把公用的函数写成一个工具类,有时候面向过程其实更方便. 在入口文件index.php里添加 require_once('protected/function.php'); 即可对其 ...

  9. docker实战——在测试中使用Docker

    在之前几章中介绍的都是Docker的基础知识,了解什么是镜像,docker基本的启动流程,以及如何去运作一个容器等等. 接下来的几个章节将介绍如何在实际开发和测试过程中使用docker. 将Docke ...

  10. rails delegate机制

    Delegate是一种应用composite来代替extend的机制,可以有效地降低代码的耦合性. Rails 2.2增加了delegate方法,可以十分方便地实现delegate机制. 01.def ...