在所有避难所都有至少一只队伍的情况,总移动距离最小。

把队伍的位置和人都排序。

会发现,对于最后一个队伍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

最新文章

  1. ASP.NET MVC Model验证(一)
  2. ubuntu更新软件源
  3. pod导入融云路径报错解决办法
  4. 【BZOJ】1018: [SHOI2008]堵塞的交通traffic
  5. Chart控件,把Y轴设置成百分比
  6. CI框架 数据库批量插入 insert_batch()
  7. [ActionScript 3.0] AS3.0 生成xml方法之一
  8. [大牛翻译系列]Hadoop(13)MapReduce 性能调优:优化洗牌(shuffle)和排序阶段
  9. bq27441-G1 工作机制
  10. EMS-keil C51常用错误
  11. UMl概述(转)
  12. hdu_5961_传递(bitset)
  13. android脚步---不同activity之间参数传递
  14. 使用puppet
  15. 十四、使用framebuffer填充纯色
  16. Git使用详细教程(6):git mv重命名文件
  17. python中和生成器协程相关的yield之最详最强解释,一看就懂(一)
  18. 为什么要用Thrift
  19. Reveal:分析iOS UI的利器
  20. C#调用XmlSerializer序列化时生成CDATA节点解决方法

热门文章

  1. Spark内核概述
  2. CF622F The Sum of the k-th Powers(拉格朗日插值)
  3. 浏览器Quirksmode(怪异模式)与标准模式
  4. Isolation Forest算法实现详解
  5. Oracle存储过程语法及编译过程讲解
  6. Linux之dstat命令
  7. 转 MYSQL_GTID详解
  8. 剑指Offer——数组中的逆序对(归并排序的应用)
  9. UVA - 12333 Revenge of Fibonacci 高精度加法 + 字典树
  10. Storm概念学习系列之Task任务