10.19 noip 模拟题 【NOIP2018模拟赛2018.10.19】

今天也才改出来一道题orz,大坑最近要填,,,

今天题目难度适中,暴力都打出来了,但是第二题“spfa死了”。

于是今天就改出来了第一题和去练了下dijkstra+堆优化。。。于是时间不够用orz。。

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

首先我们看到这道题,很容易想到二分一个最大高度,然后枚举每个位置作为x所在地,找能把这个高度两边l,r把它围起来的最大三角形,若所用积木少于m则加高这个最大高度,否则减少。

那么找l,r的时间朴素暴力是O(n^2)的,肯定要T,于是考虑优化:

二分搭建的高度,最低为maxh+1,最高为maxh+sqrt(m)+1

如何在O(n)时间内check呢?

对于搭建积木,我们要搭出一个金字塔形,但是,并不是要搭建整个金字塔形,有时候只要搭建部分即可,如图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值