USACO1996《修理牛棚》解题报告
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《修理牛棚》解题报告相关推荐
- 10.30 NFLS-NOIP模拟赛 解题报告
总结:今天去了NOIP模拟赛,其实是几道USACO的经典的题目,第一题和最后一题都有思路,第二题是我一开始写了个spfa,写了一半中途发现应该是矩阵乘法,然后没做完,然后就没有然后了!第二题的暴力都没 ...
- 20221126测试赛解题报告
20221126测试赛解题报告 1.孤独照片 [USACO21DEC] Lonely Photo B 题目描述 Farmer John 最近购入了 NNN 头新的奶牛(3≤N≤5×1053 \le N ...
- 清澄11.26测试赛解题报告
清澄11.26测试赛解题报告 孤独照片 问题描述 Farmer John 最近购入了 N 头新的奶牛(3≤n≤5*105),每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛(Holstein)之一 ...
- uscao 线段树成段更新操作及Lazy思想(POJ3468解题报告)
线段树成段更新操作及Lazy思想(POJ3468解题报告) 标签: treequerybuildn2cstruct 2011-11-03 20:37 5756人阅读 评论(0) 收藏 举报 分类: ...
- 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- 【解题报告系列】超高质量题单 + 题解(ACM / OI)超高质量题解
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我新写的超高质量的题解和代码,题目难度不 ...
- 解题报告(三)多项式求值与插值(拉格朗日插值)(ACM / OI)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- 解题报告(十三)中国剩余定理(ACM / OI)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- 解题报告(四)生成函数(ACM/ OI)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
最新文章
- SQL Server中的char,nchar,varchar和nvarchar有什么区别?
- 他22岁在家自造芯片,性能接近英特尔初代,连光刻机都有解决方案
- android代码清除锁屏密码,清除Android手机锁屏密码的三个小妙招
- 十分钟学会用Go编写Web中间件
- 怎么做装修预算?装修预算需要注意的三大事项
- 随机数大家都会用,但是你知道生成随机数的算法吗?
- python切面_Python装饰器与面向切面编程
- webots离线网页无法跳转
- WPS Excel JS宏简单使用
- 自学C语言的步骤--菜鸟篇
- 10首不可不读的苏轼“最”诗词,人间万事,不过如此!
- php开源视频cms,迅睿PHP开源视频电影CMS系统
- 《程序员》5月刊精彩内容预告
- 教你认识正斜杠(/)与反斜杠(\)
- 【vn.py】SpreadTrading价差交易
- 琵琶行·并序--白居易
- python程序采用unicode编码、英文字符_python--基础字符编码
- 植树节种树-第12届蓝桥杯Scratch选拔赛真题精选
- 不要小看90后,图片贴纸应用“贴纸”上线17天登大陆摄影与录像类App第3位,下载破15万
- Lending Club信贷违约风险分析(R语言)
热门文章
- 我觉得吧学计算机也没,“其实我觉得吧,学我们艺术专业压力也没那么大!”...
- 【C】牛客网 编程入门训练138道题
- CometOJ #10 沉鱼落雁 | 思维
- 一个简单的马赛克例子
- Win32 汇编 - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD
- 多处理器下的中断机制
- 第四章 进程同步与互斥
- win10安装wsl 2.0子系统 安装在非C盘
- vscode提示:“An SSH installation couldn‘t be found”
- 拓普康机器人控制器_营山拓普康MS05AXⅡ全自动测量机器人价格