Barn Repair

修理牛棚

译 by tim green

在一个暴风雨的夜晚,农民约翰的牛棚的屋顶、门被吹飞了。 好在许多牛正在度假,所以牛棚没有住满。 剩下的牛一个紧挨着另一个被排成一行来过夜。 有些牛棚里有牛,有些没有。 所有的牛棚有相同的宽度。 自门遗失以后,农民约翰很快在牛棚之前竖立起新的木板。 他的新木材供应者将会供应他任何他想要的长度,但是供应者只能提供有限数目的木板。 农民约翰想将他购买的木板总长度减到最少。 给出 M(1<= M<=50)可能买到的木板最大的数目;S(1<= S<=200)牛棚的总数;C(1 <= C <=S) 牛棚里牛的数目,和牛所在的牛棚的编号stall_number(1 <= stall_number <= S),计算拦住所有有牛的牛棚所需木板的最小总长度。 输出所需木板的最小总长度作为的答案。

PROGRAM NAME: barn1

INPUT FORMAT

第 1 行: M , S 和 C(用空格分开)
第 2 到 C+1行: 每行包含一个整数,表示牛所占的牛棚的编号。

SAMPLE INPUT (file barn1.in)

4 50 18
3
4
6
8
14
15
16
17
21
25
26
27
30
31
40
41
42
43

OUTPUT FORMAT

单独的一行包含一个整数表示所需木板的最小总长度。

SAMPLE OUTPUT (file barn1.out) 

25

[ 一种最优的安排是用板拦住牛棚3-8,14-21,25-31,40-43.]

--------------------------------------------------------------------------------------------------------------------------------------------------------

初次观察题目,有一点经验的Oier可以嗅出贪心的味道,那么,应该如何去实现呢?

1.初次看:贪心算法
  2.贪什么?既然希望木板长度总和尽量少,那么很明显要用的木板数尽量多
    有无反例?没有,可以得到证明的
  3.怎么贪心?既然希望木板数尽量多,那么初始情况下我们将整个牛棚都盖上木板
  举例子说明:(样例,Y表示有牛)
  1号  2号 3号 4号 5号 6号 7号 8号 9号 10号 11号  12号 13号 14号 15号 16号 17号 18号 19号 20号
                 Y   Y          Y          Y                                           Y      Y      Y     Y                       
  21号  22号 23号 24号 25号 26号 27号 28号 29号 30号 31号  32号 33号 34号 35号 36号 37号 38号
    Y                              Y       Y     Y                     Y      Y                                    
  39号  40号 41号 42号 43号 44号 45号 46号 47号 48号 49号  50号
             Y     Y      Y      Y
  显然,初次贪心结果是:耗费1块木板,长度和为50
  那么我们发现,有多余的空白出现了浪费
  1-2号扣去,当前耗费1块木板,长度和为48
  44-50号扣去,长度和为41,耗费1块木板
  然后枚举一段最长的空白,显然是32-39号,扣去,耗费2块木板,长度和为33
  再枚举,显然是9-13,扣去,耗费3块木板,长度和为28
  再枚举,显然是18-20,扣去,耗费4块木板,长度和为25

剩余的木板盖住的范围是:
  1.3-8  长度为6
  2.14-17 长度为4
  3.21-31 长度为11
  4.40-43 长度为4
  总和为25
  贪心算法呈现

时间复杂度O(N^3*M)

-------------------------------------------------------------Thanks for watching------------------------------------------------------------------

USACO1996《修理牛棚》解题报告相关推荐

  1. 10.30 NFLS-NOIP模拟赛 解题报告

    总结:今天去了NOIP模拟赛,其实是几道USACO的经典的题目,第一题和最后一题都有思路,第二题是我一开始写了个spfa,写了一半中途发现应该是矩阵乘法,然后没做完,然后就没有然后了!第二题的暴力都没 ...

  2. 20221126测试赛解题报告

    20221126测试赛解题报告 1.孤独照片 [USACO21DEC] Lonely Photo B 题目描述 Farmer John 最近购入了 NNN 头新的奶牛(3≤N≤5×1053 \le N ...

  3. 清澄11.26测试赛解题报告

    清澄11.26测试赛解题报告 孤独照片 问题描述 Farmer John 最近购入了 N 头新的奶牛(3≤n≤5*105),每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛(Holstein)之一 ...

  4. uscao 线段树成段更新操作及Lazy思想(POJ3468解题报告)

    线段树成段更新操作及Lazy思想(POJ3468解题报告) 标签: treequerybuildn2cstruct 2011-11-03 20:37 5756人阅读 评论(0) 收藏 举报  分类: ...

  5. 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  6. 【解题报告系列】超高质量题单 + 题解(ACM / OI)超高质量题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我新写的超高质量的题解和代码,题目难度不 ...

  7. 解题报告(三)多项式求值与插值(拉格朗日插值)(ACM / OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  8. 解题报告(十三)中国剩余定理(ACM / OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  9. 解题报告(四)生成函数(ACM/ OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

最新文章

  1. SQL Server中的char,nchar,varchar和nvarchar有什么区别?
  2. 他22岁在家自造芯片,性能接近英特尔初代,连光刻机都有解决方案
  3. android代码清除锁屏密码,清除Android手机锁屏密码的三个小妙招
  4. 十分钟学会用Go编写Web中间件
  5. 怎么做装修预算?装修预算需要注意的三大事项
  6. 随机数大家都会用,但是你知道生成随机数的算法吗?
  7. python切面_Python装饰器与面向切面编程
  8. webots离线网页无法跳转
  9. WPS Excel JS宏简单使用
  10. 自学C语言的步骤--菜鸟篇
  11. 10首不可不读的苏轼“最”诗词,人间万事,不过如此!
  12. php开源视频cms,迅睿PHP开源视频电影CMS系统
  13. 《程序员》5月刊精彩内容预告
  14. 教你认识正斜杠(/)与反斜杠(\)
  15. 【vn.py】SpreadTrading价差交易
  16. 琵琶行·并序--白居易
  17. python程序采用unicode编码、英文字符_python--基础字符编码
  18. 植树节种树-第12届蓝桥杯Scratch选拔赛真题精选
  19. 不要小看90后,图片贴纸应用“贴纸”上线17天登大陆摄影与录像类App第3位,下载破15万
  20. Lending Club信贷违约风险分析(R语言)

热门文章

  1. 我觉得吧学计算机也没,“其实我觉得吧,学我们艺术专业压力也没那么大!”...
  2. 【C】牛客网 编程入门训练138道题
  3. CometOJ #10 沉鱼落雁 | 思维
  4. 一个简单的马赛克例子
  5. Win32 汇编 - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD
  6. 多处理器下的中断机制
  7. 第四章 进程同步与互斥
  8. win10安装wsl 2.0子系统 安装在非C盘
  9. vscode提示:“An SSH installation couldn‘t be found”
  10. 拓普康机器人控制器_营山拓普康MS05AXⅡ全自动测量机器人价格