博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
紫书 例题 9-6 UVa 11400 (线性结构上的动态规划)
阅读量:6005 次
发布时间:2019-06-20

本文共 825 字,大约阅读时间需要 2 分钟。

这道题的下标从1开始比较方便,一方面前缀和算的方便一些,一方面涉及到前j

个灯泡,那么如果从0开始,前3个灯泡就是第0, 1, 2, 3个,非常奇怪。

所以灵活换下标。

然后这道题的动规有点暴力枚举的意思,在算出前面答案的前提下枚举当前灯泡用多少去更新当前答案

#include
#include
#define REP(i, a, b) for(int i = (a); i < (b); i++)using namespace std;const int MAXN = 1123;struct node{ int v, k, c, l; bool operator < (const node& rhs) const { return v < rhs.v; }}a[MAXN];int n, s[MAXN], d[MAXN];int main(){ while(~scanf("%d", &n) && n) { REP(i, 1, n + 1) scanf("%d%d%d%d", &a[i].v, &a[i].k, &a[i].c, &a[i].l); sort(a + 1, a + n + 1); REP(i, 1, n + 1) s[i] = s[i-1] + a[i].l; REP(i, 1, n + 1) { d[i] = s[i] * a[i].c + a[i].k; //这里相当于初始化,不要漏, 不然答案是0 REP(j, 1, i + 1) d[i] = min(d[i], d[j] + (s[i] - s[j]) * a[i].c + a[i].k); } printf("%d\n", d[n]); } return 0;}

 

转载于:https://www.cnblogs.com/sugewud/p/9819455.html

你可能感兴趣的文章
关闭windows休眠
查看>>
Ansible之十一:变量详解
查看>>
那些SCOM 管理包开发中遇到的坑1–Powershell scriptBlock Invoke执行结果的类型
查看>>
关于Server Sql 2008触发器的使用
查看>>
mac常见命令
查看>>
Redhat 系统相关调优参数注解
查看>>
nextus的使用
查看>>
Python自动化开发学习5-2-subprocess模块
查看>>
编程实现最小化窗口到桌面右下角图标的代码
查看>>
ELK stack实战之结合rsyslog分析系统日志(auth.log)
查看>>
我的IP我做主--抓包图解DHCP中继代理
查看>>
网络管理工具与IT运维管理平台的差别
查看>>
五一期间安全回顾 木马威胁提升 移动设备数据泄漏受重视
查看>>
FAQ系列 | utf8表存储latin1乱码字符转换
查看>>
VDI序曲二十 桌面虚拟化和RemoteApp集成到SharePoint 2010里
查看>>
oracle里long类型的总结
查看>>
10种有用的CSS技巧
查看>>
服务端接口中的那些坑
查看>>
MySql like 查询 变向写法(不用like 完成like查询)
查看>>
Struts 笔记
查看>>