题目

思路

贪心

相信很多人看到此题会想到贪心:让高层尽可能的小,从后往前倒叙贪心。
方面起见,我们倒叙读入,从前向后贪心使每段尽可能的小。
但是,对于每一层,我们可以有两种的方法,一个是向上,一个是巩固地基,所以不能用贪心来实现,但是我们还是得到了一个结论

底层最小的方案 一定可以 构造出最高的层数。

普通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相关推荐

  1. [USACO09Open] Tower of Hay 干草塔

    为了调整电灯亮度,贝西要用干草包堆出一座塔,然后爬到牛棚顶去把灯泡换掉.干草包会从传送带上运来,共会出现N包干草,第i包干草的宽度是W i ,高度和长度统一为1.干草塔要从底层开始铺建.贝西会选择最先 ...

  2. [BZOJ] 1606: [Usaco2008 Dec]Hay For Sale 购买干草

    1606: [Usaco2008 Dec]Hay For Sale 购买干草 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1335  Solved:  ...

  3. dwarf tower

    [问题描述] Vasya在玩一个叫做"Dwarf Tower"的游戏,这个游戏中有n个不同的物品, 它们的编号为1到n.现在Vasya想得到编号为1的物品. 获得一个物品有两种方式 ...

  4. Codeforces Gym 100269 Dwarf Tower (最短路)

    题目连接: http://codeforces.com/gym/100269/attachments Description Little Vasya is playing a new game na ...

  5. 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机

    1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: ...

  6. 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 ...

  7. 如何攻克异地协作难题?看 Tower 的 72 个月远程工作实践

    12 月 9 日,TGO 鲲鹏会武汉分会成功组织了第一次小组活动.在此次小组活动中,Tower 联合创始人 & TGO 鲲鹏会武汉分会会员徐峥带来了<Tower 团队 72 个月远程协作 ...

  8. The Magic Tower

    The Magic Tower Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  9. C++Tower of Hanoi汉诺塔的实现算法(附完整源码)

    C++Tower of Hanoi汉诺塔的实现算法 C++Tower of Hanoi汉诺塔的实现算法完整源码(定义,实现,main函数测试) C++Tower of Hanoi汉诺塔的实现算法完整源 ...

最新文章

  1. [轉]JavaScript获取HTML DOM父,子,临近节点
  2. Java主方法引用传递_java方法中的参数传递是值传递还是引用传递(转)
  3. bootstrap 固定最底部_bootstrap 固定底部导航自适应
  4. 自动化测试框架 2019_2019年用于自动化的5个最佳Java测试框架
  5. SharePoint 2013 中自定义WCF服务
  6. Python编程基础16:类和对象
  7. Oracle输入默认密码错误,oracle中默认账号oracle 11g SQL plus软件怎么打开?打开显示密码错误怎么办?...
  8. keil:官网下载安装MDK5的软件包
  9. android 中通过SimpleDateFormat自定义显示英文的时间格式
  10. 三星为什么能超越SONY在世界崛起?
  11. 字节跳动-大数据研发面试准备
  12. java 3的倍数_java,编写一个从1循环到150并在每行打印一个值,另外在每个3的倍数行上打印出foo,在每个5的倍数行上打印biz,在每个7的倍数上打印baz....
  13. 登录 SharePoint Online
  14. 神策应用-概述认知(一)
  15. 推荐系统之用户标签,以及基于标签的算法
  16. 足球一代又一代得青春
  17. 在html页面中引入jquery
  18. 【机器学习】随机森林 – Random forest
  19. 关于 Redis 的 懒惰删除 (十三)
  20. 机器学习实战笔记 第二章(1)

热门文章

  1. 钉钉如何撬动汽车巨头的效率飞轮?
  2. 重庆邮电大学计算机考研录取名单,重庆邮电大学2019年硕士研究生复试拟录取名单公示(第一批)...
  3. python分析并爬取今日头条的视频链接
  4. 写给技术负责人的 AI 落地方案,医疗、金融、教育、零售等行业都用得上!
  5. ADSP-21489的开发详解:VDSP+自己编程写代码开发(7-Block-Based Talkthru 48 or 96 kHz)(含源代码)
  6. 【游戏客户端】实现转盘抽奖活动
  7. 变送器分类及产品的选择
  8. 机器学习——随机森林特征选择及周期性分析
  9. 下单账号与支付账号不一致_开发者报丨网友微信/支付宝/百度云盘等账号集体被盗,支付宝官方回应...
  10. 市值暴跌的名创优品,回港上市能给它救赎吗?