Tower of Hay
题目
思路
贪心
相信很多人看到此题会想到贪心:让高层尽可能的小,从后往前倒叙贪心。
方面起见,我们倒叙读入,从前向后贪心使每段尽可能的小。
但是,对于每一层,我们可以有两种的方法,一个是向上,一个是巩固地基,所以不能用贪心来实现,但是我们还是得到了一个结论
底层最小的方案 一定可以 构造出最高的层数。
普通dp
所以我们就看可以先造一个dp来解决,因为题目说是要按照从下面到上面要递减,我们这样是没办法进行dp转移的,那我们不妨把它给倒过来,然后写用前缀和求出大小。并且用两个数组来转移。一个是dp[i]表示到第i个草堆可以叠多少层,g[i]表示叠到最后一层的宽度
然后转移就是从第i堆草到第N堆,如果两个前缀和一减<=前面那一层,那么就可以转移
复杂的O(n^2)
DP+单调队列
由于是s[i]和d[j]是单调的 故s[i]+d[j]
是单调的 满分算法需要要用单调队列优化
for(int i = 1; i <= n; i ++) cin >> a[i];
for(int i = n; i >= 1; i --) s[i] = s[i + 1] + a[i];
q[++ t] = 0;
for(int i = n; i >= 1; i --)
{while(h < t && s[q[h + 1]] + d[q[h + 1]] <= s[i]) h ++;d[i] = s[i] - s[q[h]];dp[i] = dp[q[h]] + 1;while(h <= t && s[i] + d[i] <= s[q[t]] + d[q[t]]) t --;q[++ t] = i;
}
Tower of Hay相关推荐
- [USACO09Open] Tower of Hay 干草塔
为了调整电灯亮度,贝西要用干草包堆出一座塔,然后爬到牛棚顶去把灯泡换掉.干草包会从传送带上运来,共会出现N包干草,第i包干草的宽度是W i ,高度和长度统一为1.干草塔要从底层开始铺建.贝西会选择最先 ...
- [BZOJ] 1606: [Usaco2008 Dec]Hay For Sale 购买干草
1606: [Usaco2008 Dec]Hay For Sale 购买干草 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1335 Solved: ...
- dwarf tower
[问题描述] Vasya在玩一个叫做"Dwarf Tower"的游戏,这个游戏中有n个不同的物品, 它们的编号为1到n.现在Vasya想得到编号为1的物品. 获得一个物品有两种方式 ...
- Codeforces Gym 100269 Dwarf Tower (最短路)
题目连接: http://codeforces.com/gym/100269/attachments Description Little Vasya is playing a new game na ...
- 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机 Time Limit: 5 Sec Memory Limit: 64 MB Submit: ...
- 01背包 || BZOJ 1606: [Usaco2008 Dec]Hay For Sale 购买干草 || Luogu P2925 [USACO08DEC]干草出售Hay For Sale...
题面:P2925 [USACO08DEC]干草出售Hay For Sale 题解:无 代码: 1 #include<cstdio> 2 #include<cstring> 3 ...
- 如何攻克异地协作难题?看 Tower 的 72 个月远程工作实践
12 月 9 日,TGO 鲲鹏会武汉分会成功组织了第一次小组活动.在此次小组活动中,Tower 联合创始人 & TGO 鲲鹏会武汉分会会员徐峥带来了<Tower 团队 72 个月远程协作 ...
- The Magic Tower
The Magic Tower Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- C++Tower of Hanoi汉诺塔的实现算法(附完整源码)
C++Tower of Hanoi汉诺塔的实现算法 C++Tower of Hanoi汉诺塔的实现算法完整源码(定义,实现,main函数测试) C++Tower of Hanoi汉诺塔的实现算法完整源 ...
最新文章
- [轉]JavaScript获取HTML DOM父,子,临近节点
- Java主方法引用传递_java方法中的参数传递是值传递还是引用传递(转)
- bootstrap 固定最底部_bootstrap 固定底部导航自适应
- 自动化测试框架 2019_2019年用于自动化的5个最佳Java测试框架
- SharePoint 2013 中自定义WCF服务
- Python编程基础16:类和对象
- Oracle输入默认密码错误,oracle中默认账号oracle 11g SQL plus软件怎么打开?打开显示密码错误怎么办?...
- keil:官网下载安装MDK5的软件包
- android 中通过SimpleDateFormat自定义显示英文的时间格式
- 三星为什么能超越SONY在世界崛起?
- 字节跳动-大数据研发面试准备
- java 3的倍数_java,编写一个从1循环到150并在每行打印一个值,另外在每个3的倍数行上打印出foo,在每个5的倍数行上打印biz,在每个7的倍数上打印baz....
- 登录 SharePoint Online
- 神策应用-概述认知(一)
- 推荐系统之用户标签,以及基于标签的算法
- 足球一代又一代得青春
- 在html页面中引入jquery
- 【机器学习】随机森林 – Random forest
- 关于 Redis 的 懒惰删除 (十三)
- 机器学习实战笔记 第二章(1)
热门文章
- 钉钉如何撬动汽车巨头的效率飞轮?
- 重庆邮电大学计算机考研录取名单,重庆邮电大学2019年硕士研究生复试拟录取名单公示(第一批)...
- python分析并爬取今日头条的视频链接
- 写给技术负责人的 AI 落地方案,医疗、金融、教育、零售等行业都用得上!
- ADSP-21489的开发详解:VDSP+自己编程写代码开发(7-Block-Based Talkthru 48 or 96 kHz)(含源代码)
- 【游戏客户端】实现转盘抽奖活动
- 变送器分类及产品的选择
- 机器学习——随机森林特征选择及周期性分析
- 下单账号与支付账号不一致_开发者报丨网友微信/支付宝/百度云盘等账号集体被盗,支付宝官方回应...
- 市值暴跌的名创优品,回港上市能给它救赎吗?