这一道题我一直在想时间该怎么算。

看题解发现有个隐藏的贪心。

路径一定是左右扩展的,左右端点最多加+1(我竟然没发现!!)

这个性质非常重要!!

因此这道题用区间dp

f[i][j]表示关完i到j的路灯的消耗。

那么因为要算走的路程,那么还有一维表示当前人在左端点

还是右端点。

然后每次的消耗为当前走这一段的时间乘上这个时候还亮着的路灯

的总功率。

然后这个起点的意义就在于在起点的消耗为0,其他都为正无穷

#include<cstdio>
#include<cstring>
#include<algorithm>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
#define _for(i, a, b) for(int i = (a); i <= (b); i++)
using namespace std; const int MAXN = 1123;
int f[MAXN][MAXN][2], t[MAXN][MAXN];
int w[MAXN], a[MAXN], n, s; int main()
{
scanf("%d%d", &n, &s);
_for(i, 1, n) scanf("%d%d", &a[i], &w[i]); _for(i, 1, n)
_for(j, i, n)
t[i][j] = t[i][j-1] + w[j];
int sum = t[1][n];
_for(i, 1, n)
_for(j, i, n)
t[i][j] = sum - t[i][j]; memset(f, 0x3f, sizeof(f));
f[s][s][0] = f[s][s][1] = 0;
_for(d, 2, n)
_for(i, 1, n)
{
int j = i + d - 1;
if(j > n) break;
f[i][j][0] = min(f[i+1][j][0] + t[i+1][j] * (a[i+1]-a[i]), f[i+1][j][1] + t[i+1][j] * (a[j]-a[i]));
f[i][j][1] = min(f[i][j-1][0] + t[i][j-1] * (a[j]-a[i]), f[i][j-1][1] + t[i][j-1] * (a[j]-a[j-1]));
} printf("%d\n", min(f[1][n][0], f[1][n][1])); return 0;
}

最新文章

  1. iOS之UI组件整理
  2. ArrayList 如何增加大小
  3. 每天一个 Linux 命令(12):more命令
  4. 《TCP/IP详解 卷一》读书笔记-----TCP连接建立
  5. LinkedList的实现原理
  6. HD OJ2023
  7. HttpSolrServer-采用静态工厂方法,创建HttpSolrServer单实例
  8. js 中中括号,大括号使用详解
  9. java03变量和基本数据类型
  10. Unity3d 4.3.4f1执行项目
  11. c++判断一个字符串是否是数字
  12. qemu -hda /dev/sdc -m 1024 -vga std
  13. MySQL常见备份方案
  14. echarts之legend-改变图例的图标为自定义图片
  15. JAVA中String类型的字符替换问题
  16. Mongodb - 切片搭建
  17. QT的信号和槽机制简介
  18. 解决Java连接MySQL存储过程返回参数值为乱码问题
  19. 剑指offer-从上往下打印二叉树22
  20. 限制printk打印频率函数printk_ratelimit【转】

热门文章

  1. SyntaxError Generator expression must be parenthesized
  2. django.core.exceptions.ImproperlyConfigured: Application labels aren&#39;t unique, duplicates: admin
  3. python链接mysql数据库
  4. springMVC传递对象参数
  5. HDU 1086 You can Solve a Geometry Problem too( 判断线段是否相交 水题 )
  6. Unity 常用常找的东西存放
  7. JavaString库
  8. 【【henuacm2016级暑期训练】动态规划专题 D】Writing Code
  9. linux内核(四)内存管理单元MMU
  10. 2015 Multi-University Training Contest 7 hdu 5375 Gray code