[Noip模拟赛] Power

POWER

源程序名 POWER.??? (PAS,C,CPP)

可执行文件名   POWER.EXE

输入文件名     POWER.IN

输出文件名     POWER.OUT

 

多瑞卡得到了一份有趣而高薪的工作。每天早晨他必须关掉他所在村庄的街灯。所有的街灯都被设置在一条直路的同一侧。

多瑞卡每晚到早晨5点钟都在晚会上,然后他开始关灯。开始时,他站在某一盏路灯的旁边。

每盏灯都有一个给定功率的电灯泡,因为多端卡有着自觉的节能意识,他希望在耗能总数最少的情况下将所有的灯关掉。

多端卡因为太累了,所以只能以1m/s的速度行走。关灯不需要花费额外的时间,因为当他通过时就能将灯关掉。

编写程序,计算在给定路灯设置,灯泡功率以及多端卡的起始位置的情况下关掉所有的灯需耗费的最小能量。

 

输入

输入文件的第一行包含一个整数N,2≤N≤1000,表示该村庄路灯的数量。

第二行包含一个整数V,1≤V≤N,表示多瑞卡开始关灯的路灯号码。

接下来的N行中,每行包含两个用空格隔开的整数D和W,用来描述每盏灯的参数,其中0≤D≤1000,0≤W≤1000。D表示该路灯与村庄开始处的距离(用米为单位来表示),W表示灯泡的功率,即在每秒种该灯泡所消耗的能量数。路灯是按顺序给定的。

 

输出

输出文件的第一行即唯一的一行应包含一个整数,即消耗能量之和的最小值。注意结果小超过1,000,000,000。

 

样例

POWER.IN

4

3

2 2

5 8

6 1

8 7

 

POWER.OUT

56

【题解】

有点难,需要好好想想

f[i,j]表示关闭[i,j]且停在i的min
g[i,j]表示关闭[i,j]且停在j的min
h[i,j]表示除了[i,j]其他功率

那么就可以转移了

f[i][j]=min(f[i+1][j]+h[i+1][j]*(d[i+1]-d[i]),g[i+1][j]+h[i+1][j]*(d[j]-d[i]));
g[i][j]=min(f[i][j-1]+h[i][j-1]*(d[j]-d[i]),g[i][j-1]+h[i][j-1]*(d[j]-d[j-1]));

 

 1 #include <stdio.h>
 2 #include <string.h>
 3 using namespace std;
 4 long long f[1010][1010],g[1010][1010],h[1010][1010],d[1010],w[1010],p[1010];
 5 // f i,j表示关闭[i,j]且停在i的min
 6 // g i,j表示关闭[i,j]且停在j的min
 7 // h i,j表示除了[i,j]其他功率 
 8 int n,st; 
 9 inline void IO() {
10     freopen("power.in","r",stdin);
11     freopen("power.out","w",stdout);
12 }
13 inline int min(int a,int b) {return a<b?a:b;}
14 inline void RS() {
15     scanf("%d%d",&n,&st);
16     for (int i=1;i<=n;++i) {
17         scanf("%d%d",&d[i],&w[i]);
18         p[i]=p[i-1]+w[i];    
19     }
20     for (int i=1;i<=n;++i)
21         for (int j=i;j<=n;++j) 
22              h[i][j]=p[n]+p[i-1]-p[j];
23     for (int i=1;i<=n;++i) for (int j=1;j<=n;++j) {
24         f[i][j]=g[i][j]=2333333333333;
25     }
26     f[st][st]=g[st][st]=0;
27     for (int j=st;j<=n;++j)
28         for (int i=j-1;i>=1;--i) {
29             f[i][j]=min(f[i+1][j]+h[i+1][j]*(d[i+1]-d[i]),g[i+1][j]+h[i+1][j]*(d[j]-d[i]));
30             g[i][j]=min(f[i][j-1]+h[i][j-1]*(d[j]-d[i]),g[i][j-1]+h[i][j-1]*(d[j]-d[j-1]));
31         }            
32     printf("%lld\n",min(f[1][n],g[1][n]));
33 }
34 int main() {
35     IO(),
36     RS();
37     return 0;
38 }
View Code

 

转载于:https://www.cnblogs.com/TonyNeal/p/noip_power.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358606.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何玩转CSS列表样式?速查!

目录 CSS 列表 列表 不同的列表项标记 作为列表项标记的图像 浏览器兼容性解决方案 列表 -简写属性

linux逆向工程反汇编,Kali Linux 逆向工程工具 Jad 教程

日期&#xff1a;2017年12月21日观看&#xff1a; 1,895 C 次用法&#xff1a;jad [option(s)] jad [选项(s)] 选项&#xff1a;-a - 生成JVM指令作为注释(注释)-af - 注释时输出完全限定的名称-b - 生成冗余大括号(大括号)-clear - 清除所有的前缀&#xff0c;包括默认的前缀-…

任意文件读取及删除漏洞

任意文件读取漏洞及危害 通过提交专门设计的输入&#xff0c;攻击者就可以在被访问的文件系统中读取或写入任意内容&#xff0c;往往能够使攻击者从服务器上获取敏感信息文件&#xff0c;正常读取的文件没有经过校验或者不严格&#xff0c;用户可以控制这个变量读取任意文件。…

restful web_RESTful Web服务可发现性,第4部分

restful web这是关于使用Spring 3.1和Spring Security 3.1和基于Java的配置来建立安全的RESTful Web Service的系列文章的第四篇 。 本文将重点介绍REST API&#xff0c;HATEOAS的可发现性以及由测试驱动的实际方案。 引入REST可发现性 API的可发现性是一个值得引起足够关注的…

微信小程序微信支付安卓手机可以,苹果手机支付失败。

问题截图: 解决办法有3种可能性,请按照对应的情况排查: 1.wx.request 无法发起网络请求,提示没有权限,域名已经配置过了,证书检测也是正确没问题的? 测试ios和安卓,假如有一方可以,一方不行,则是证书问题,请选用受认可的证书 检测地址:https://www.qcloud.co…

面试知识点总结01

1.Android 版本Bug 想必使用过 Android 5.0.1 系统的用户对内存泄露 bug 不会感到陌生&#xff0c;此缺陷不仅会导致内存占用过高&#xff0c;还会进而致使应用及其后台进程被强制关闭&#xff0c;甚至是系统界面崩溃等。 内存泄露 信息泄露 流量泄露 2.ArrayList 和LinkList的…

安装linux无驱动黑屏,ubuntu16.04安装黑屏与显卡安装笔记

本帖最后由 zhengchao666 于 2016-4-26 16:08 编辑ubuntu安装时黑屏处理问题描述&#xff1a;ubuntu使用光盘/USB安装时&#xff0c;出现"install ubuntu/ try ubuntu without installation"选择&#xff0c;但是Enter安装时&#xff0c;显示器显示没有信息&#xff…

从JS敏感信息泄露到GETSHELL

前言 小弟新手&#xff0c;大佬勿喷&#xff0c;文章有何不妥&#xff0c;还望大佬们斧正。 正文 前端时间打HW&#xff0c;拿到一个IP&#xff0c;先在FOFA上搜一下 发现这个IP现在开放了三个端口&#xff0c;分别是86&#xff0c;83&#xff0c;82对应不同的后台管理系统 …

HashMap两种遍历数据的方式

HashMap的遍历有两种方式&#xff0c;一种是entrySet的方式&#xff0c;另外一种是keySet的方式。 第一种利用entrySet的方式&#xff1a; Map map new HashMap(); Iterator iter map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry (Map.Entry) iter.ne…

jOOQ类型安全数据库查询教程

课程大纲 SQL是用于关系数据库查询的功能强大且表达能力强的语言。 SQL已建立&#xff0c;标准化并且几乎不受其他查询语言的挑战。 但是&#xff0c;在Java生态系统中&#xff0c;自从JDBC以来&#xff0c;几乎没有采取任何相关的措施来更好地将SQL集成到Java中。 在更高级别上…

中专计算机专业学c语言吗,中专计算机专业学什么 有哪些课程

计算机原理、计算机应用基础、计算机网络基础、CAD辅助设计、三维动画设计、VBSIC语言及程序设计PHOTOSHOP、Windows、网页设计、Office办公自动化、多媒体、计算机系统安装及维护管理、计算机病毒原理防范等。计算机专业就业前景计算机专业就业前景很好。随着现代经济和科技的…

教你玩转CSS表格(table)

目录 表格边框 折叠边框 表格宽度和高度 表格文字对齐 表格填充 表格颜色 表格边框 指定CSS表格边框,使用border属性。 下面的例子指定了一个表格的Th和TD元素的黑色边框: table, th, td {border: 1px solid black;}

实战|全程分析js到getshell

本篇转载于https://forum.butian.net/share/260 看到望海师傅的山理证书真滴好看&#xff0c;真想搞一本&#xff0c;刚刚入edusrc的时候收集了一波山理的子域资产&#xff0c;全部看了一遍都被大佬挖的干干净净了。没有内网VPN基本上挖不到&#xff0c;然后我就去公众号看了一…

教你吃透CSS的盒子模型(Box Model)

目录 CSS 盒子模型(Box Model) 元素的宽度和高度 浏览器的兼容性问题 CSS 盒子模型(Box Model) 所有HTML元素可以看作盒子,在CSS中,”box model”这一术语是用来设计和布局时使用。 CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容…

多家防火墙设备存在信息泄露漏洞

概述 漏洞名称多家防火墙设备存在信息泄露漏洞安全通告发布日期2021-06-16受影响产品及版本胜鑫塔下一代防火墙XT6000-A-FW-1.0.0-0-2778 利谱第二代防火墙6164-1.5.2 任子行下一代防火墙SURF-NGSA-V-3000 中科网威下一代防火墙F6600L-1.5.2 任子行网络安全审计系统内置报表 网…

c语言 linker error,[Linker error] undefined reference to `prinf'的问题!

[Linker error] undefined reference to prinf的问题&#xff01;环境为dev-cpp日志如下&#xff1a;编译器: Default compiler执行 gcc.exe...gcc.exe "E:\C\ran.c" -o "E:\C\ran.exe" -I"D:\Dev-Cpp\include" -L"D:\Dev-Cpp\lib"C:\…

独处可以激发思考的力量

如果你知道怎么独处的话&#xff0c;成大事者都是善于独处的人&#xff0d;&#xff0d;在独处的过程中激发思考的力量。 自卑可以像一座大山把人压倒并让你永远沉默&#xff0c;也可以像推进器产生强大的动力。 比别人先走一步&#xff0c;能创造一种成功的心境。 在独处时&am…

教你玩转CSS border(边框)

目录 边框样式 border-style 值 边框宽度 边框颜色 边框-单独设置各边 实例 边框-简写属性 CSS 边框属性

从命令式功能到纯功能性,然后再返回:Monads与范围内的延续

这则影片随附此文章&#xff0c;没有它不会有太大意义 上个月&#xff0c;我在Curry On会议上做了演讲&#xff0c;该会议是与学术&#xff0c;编程语言会议ECOOP共同举办的新会议。 Curry On旨在弥合学术界之间的鸿沟。 我的学术兴趣不包括编程语言&#xff0c;我认为编程语言…

php boolean 全大写还是全小写,【PHP培训】PHP为什么大小写规则是如此不规则?

据 但还是建议使用统统敏感的写法&#xff0c;推荐大家始终坚持“大小写敏感”&#xff0c;遵循统一的代码规范&#xff0c;不定义大小相同的函数和方法。 一、大小写敏感 1.变量名区分大小写 所有变量均区分大小写&#xff0c;包括普通变量以及$_GET,$_POST,$_REQUEST,$_C…