UVALive 4987 EvacuationPlan(dp,贪心)
2015-10-11 22:00
274 查看
在所有避难所都有至少一只队伍的情况,总移动距离最小。
把队伍的位置和人都排序。
会发现,对于最后一个队伍i和最后一个避难所j,
Case 1:pos[j]>=pos[i],那么i是距离j最近的一只队伍,
Case 2:pos[j]<pos[i],那么j是距离i最近的一个避难所。
dp[i][j]表示第i个人,第j个避难所非空的最小总距离。
转移:对于第i个人,只需要往j走就好了。
Case 1,如果i走到最近的避难所j',那么必须要有i之前的某个i'走到j,不会更优。
Case 2,直接贪心。
j已经有队伍了,前i-1个人可以进j也可以不进。
dp[i][j] = min(dp[i-1][j],dp[i-1][j-1])+dist(i,j).
可以从大到小枚举j把空间优化成一维。
路径用过bitset和bool。结果bitset慢了200ms...
想了很久的贪心的只能水过样例。还是n^2的dp稳啊。
VeiwCode
把队伍的位置和人都排序。
会发现,对于最后一个队伍i和最后一个避难所j,
Case 1:pos[j]>=pos[i],那么i是距离j最近的一只队伍,
Case 2:pos[j]<pos[i],那么j是距离i最近的一个避难所。
dp[i][j]表示第i个人,第j个避难所非空的最小总距离。
转移:对于第i个人,只需要往j走就好了。
Case 1,如果i走到最近的避难所j',那么必须要有i之前的某个i'走到j,不会更优。
Case 2,直接贪心。
j已经有队伍了,前i-1个人可以进j也可以不进。
dp[i][j] = min(dp[i-1][j],dp[i-1][j-1])+dist(i,j).
可以从大到小枚举j把空间优化成一维。
路径用过bitset和bool。结果bitset慢了200ms...
想了很久的贪心的只能水过样例。还是n^2的dp稳啊。
VeiwCode
相关文章推荐
- 前端网页内容性能优化
- 程序的机器级表示 第四周10.5~10.11
- Another Crisis
- 广播域和冲突域
- hiho #1241 : Best Route in a Grid 【dp 求解质因子2和5的最少匹配个数】
- Java Android常用术语英文简称及释义
- CPaintDC、CClientDC、CWindowDC和CMetaFileDC类的主要特点及区别
- Swift中使用Reactive获取网络数据,并字典转模型。
- 20135304刘世鹏——信息安全系统设计基础第四周学习总结
- 类内存分配和this指针
- 图的遍历,非递归版本,深度优先遍历
- CSDN成长史——用心写博客
- HDU 4772 Zhuge Liang's Password 2013杭州现场赛
- 今天面试了两个程序猿(二)
- hihocoder #1091
- centos kvm部署和常用命令
- 第二阶段 软件测试管理概述
- 也许每个农村出来的码农都有个田园梦
- php开发日记之数据库连接
- LIntCode-二进制求和