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

[Noip模拟赛] Power相关推荐

  1. NOI.AC NOIP模拟赛 第六场 游记

    NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...

  2. 【noip模拟赛4】Matrix67的派对 暴力dfs

    [noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...

  3. 【HHHOJ】NOIP模拟赛 捌 解题报告

    点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...

  4. jyzy noip模拟赛5.22-2

    不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...

  5. NOIP模拟赛csy2021/10/30

    NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...

  6. 【WZOI第二次NOIP模拟赛Day1T2】世界末日 解题报告

    [WZOI第二次NOIP模拟赛Day1T2]世界末日 Problem 2 世界末日 (doomsday.pas/c/cpp) 背景 话说CWQ大牛终于打开了那扇神秘大门,但迎接他的不是什么神秘的东西, ...

  7. NOIP 模拟赛 长寿花 题解

    NOIP 模拟赛 长寿花 题解 要放 \(n\) 层物品,第 \(i\) 层有 \(a_i\) 个位置放物品,物品有 \(m\) 中颜色,有约束条件: 同一层两个相邻物品颜色不能相同. 相邻两层颜色集 ...

  8. 辣鸡(ljh) NOIP模拟赛 模拟 平面几何 数论 化学相关(雾)

    [题目描述] 辣鸡ljhNOI之后就退役了,然后就滚去学文化课了. 然而在上化学课的时候,数学和化学都不好的ljh却被一道简单题难住了,受到了大佬的嘲笑. 题目描述是这样的:在一个二维平面上有一层水分 ...

  9. NOIP模拟赛套路技巧经验总结

    前言 还有2天就NOIP了,之前做了这么多场模拟赛,是时候拿出来总结一下, 算是给自己一针强心剂. 列表 从最近的考试总结起(个人认为的重点,可能有重复,仅供参考): (转化很重要,一定要简化问题过后 ...

最新文章

  1. CAPI3 HTTP文件服务器搭建(共享目录版)
  2. hdu-5781 ATM Mechine(dp+概率期望)
  3. 微信、企业微信、支付窗、微博SDK 四合一,JeeWx-api 1.2.2 版本发布!
  4. (1)散列表(哈希表)的定义
  5. 【零基础学Java】—Collections集合工具类(四十二)
  6. 使用gulp+browser-sync搭建Sass自动化编译以及自动刷新所需要的插件
  7. 合肥一六八2021高考成绩查询,合肥高考成绩查询入口
  8. IBM与红帽联手构建开源混合云环境
  9. matlab的开方算法_区域生长算法(附MATLAB代码实现)
  10. CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsi解决办法 亲测有效
  11. 计算机电子表格计算怎么做,excel表格如何做总计|excel表格总计教程
  12. gin-vue-admin 使用docker容器中的数据库
  13. 【html5基础学习速成】
  14. 【dbeaver】发生了错误。请参阅日志文件
  15. 苹果手机屏幕上的圆点怎么设置?(开启悬浮按钮)
  16. The stash entry is kept in case you need it again.
  17. echarts在中国地图上绘制各省指标
  18. 通过宏快速破解EXCEL文件密码
  19. 强化学习初探 DQN+PyTorch+gym倒立摆登山车
  20. Facebook 中国程序员之死:年仅 38 岁跳楼轻生,浙大 EE 毕业生,去年刚入职

热门文章

  1. html table nei边框线,GitHub - meichuanneiku/TableCell: 在TableBank的基础上,进一步标注到单元格精度,利用目标检测/分割实现单元格定位。...
  2. apache图片cache容量_apache利用mod_cache缓存图片等
  3. 飞畅科技-工业以太网的应用现状及前景展望
  4. 【渝粤题库】广东开放大学 现代服务学概论 形成性考核 (2)
  5. 【渝粤题库】国家开放大学2021春2726畜禽生产概论题目
  6. java浏览文件夹_一个用java实现简单的文件浏览器
  7. python3.1.1_python 3.1.1 with--enable shared:将不会构建任何扩展
  8. 红头文件rgb红色值_拿下抖音小姐姐,我写了个口红色号识别器
  9. 嵌入式linux图形系统设计,轻量级嵌入式Linux图形系统设计与实现
  10. json文件读取之reader.onload中的定义的变量在其函数外部进行处理