(四五年以前的老草稿,作为强迫症还是发布出来吧)

修建道路(road.pas/c/cpp)

[问题描述]

NOIP2012的参赛者LG异想天开打算修建一条磁悬浮列车的通道连接现代OI王国的首都(编号为1)和AY的家(编号为n).
当然了,现代OI集团的n(1<=n<=1000)座城市之间没有任何的磁悬浮通道,而LG通过实地勘测发现,一共有p(1<=P<=10000)对城市之间可以建磁悬浮通道.
在这p对城市之中,第i对城市分别为ai,bi,它们间的距离为li(1<=li<=1000000).数据中保证每对{ai,bi}最多只出现1次.
现代OI集团决定免费帮LG修建最多k条线路的磁悬浮通道,而LG要花的钱,是他自己负责修建的那些线路的最长的那条路的长度.
LG当然想花最少的钱......他想知道他最少能花多少钱.

[输入描述]

第1行:3个用空格隔开的整数:n,p,以及k
第2..p+1行:第i+1行为3个用空格隔开的整数:ai,bi,li

[样例输入]

5 7 1
1 2 5
3 1 4
2 4 8
3 2 3
5 2 9
3 4 7
4 5 6

[样例说明]

现代OI集团一共有5个城市.城市1不能直接与城市4,5相连.城市5不能直接与城市1,3相连.其余所有城市间均可修建轨道.现代OI集团可以免费为LG修建一条线路.

[输出描述]

输出1个整数,为LG在这项工程上的最小支出.如果任务不可能完成,输出-1

[输出样例]

4

[样例说明]

LG选择如下的修建方案:1->3,3->2,2->5,这3条路线的长度分别为4,3,9.LG让现代OI集团免费修建那条长度为9的路线,于是,他所需要花费的钱为4.


这道题要做出来就必须审清题意,第一,题目要解的是需要LG自费的路段中最大的权值,而非路径权值和;第二,现代OI集团会使K个路段的权值归零,显然,最优解要求那免费修的K个路段必须是路径中权值最大的K个。这意味着不能再单纯地求最短路,因为最终答案选定的那条路径在免费修K条路段之前也许并不是该图中的最短路。

这时,我们完全可以假设编号为i的某路段权值就是答案,也就是把编号为i的路段作为LG自费的最长路段。如果将所有路段以长度有小到大排序,我们就可以用二分思想找到i的值。

最新文章

  1. jQuery校验
  2. jenkins自动化构建iOS应用配置过程中遇到的问题
  3. Python 基礎 - 字典的操作使用
  4. CentOs安装Scrapy出现error: Setup script exited with error: command ‘gcc’ failed with exit status 1错误解决方案
  5. Android-BaseLine基础性开发框架
  6. Spring Batch学习
  7. struts2.1笔记03:AOP编程和拦截器概念的简介
  8. 用POLL的方式,没有跑出结果来,立此存照
  9. cql
  10. Android之Handler的postDelayed()使用方法
  11. css浮动布局,浮动原理,清除(闭合)浮动方法
  12. 上篇:python的基本数据类型以及对应的常用方法(数字、字符串、布尔值)
  13. C# 在PPT中绘制形状(shape)
  14. CentOS 7 系统下 GitLab 搭建
  15. mysql jdbc 官方编程示例
  16. jquery的自定义事件通过on绑定trigger触发
  17. python---基于memcache的自定义session类
  18. [转]css选择器优先级深入理解
  19. 题目1162:I Wanna Go Home(最短路径问题进阶dijkstra算法))
  20. hdu 5909 Tree Cutting——点分治(树形DP转为序列DP)

热门文章

  1. Angular ContentChild
  2. Laravel5.1 文件管理
  3. 编程之美 set 10 队列中取最大值操作问题
  4. iOS 开发之 -- UDID和UUID的详解
  5. TArray&lt;uint8&gt;转FString
  6. 点击input选中文本
  7. 利用MFC实现浏览器的定制与扩展(JavaScript与C++交互)
  8. [Android Tips] 27. 检查 APK 是否可调试
  9. JRebel插件安装配置与破解激活(多方案)详细教程
  10. java面向对象基础回顾