当前位置: 首页 > news >正文

罗琳做的网站张家港做网站公司

罗琳做的网站,张家港做网站公司,深圳做手机网站建设,代理做减肥网站问题描述 这天, 小明在砍竹子, 他面前有 n 棵竹子排成一排, 一开始第 i 棵竹子的 高度为 hi​. 他觉得一棵一棵砍太慢了, 决定使用魔法来砍竹子。魔法可以对连续的一 段相同高度的竹子使用, 假设这一段竹子的高度为 H, 那么 用一次魔法可以 把这一段竹子的高度都变为 ⌊H2⌋…

问题描述

这天, 小明在砍竹子, 他面前有 n 棵竹子排成一排, 一开始第 i 棵竹子的 高度为 hi​.

他觉得一棵一棵砍太慢了, 决定使用魔法来砍竹子。魔法可以对连续的一 段相同高度的竹子使用, 假设这一段竹子的高度为 H, 那么

用一次魔法可以 把这一段竹子的高度都变为 ⌊H2⌋+1⌋, 其中 ⌊x⌋ 表示对 x 向下取整。小明想 知道他最少使用多少次魔法可

让所有的竹子的高度都变为 1 。

输入格式

第一行为一个正整数 n, 表示竹子的棵数。

第二行共 n 个空格分开的正整数 hi, 表示每棵竹子的高度。

输出格式

一个整数表示答案。

样例输入

6
2 1 4 2 6 7

 

样例输出

5

 

样例说明

其中一种方案:

214262: 214267→214262→214222→211222→111222→111111​  ​共需要 5 步完成

评测用例规模与约定

对于 20% 的数据, 保证 n≤1000,hi≤106 。 对于 100%的数据, 保证 n≤2×105,hi≤1018 。

运行限制

  • 最大运行时间:2s
  • 最大运行内存: 256M
  •  

解题思路

这是一道不需要思考思维 要求实现细节的贪心思维题目

首先 易得一个贪心策略:优先砍所剩竹子中高度最大的竹子  砍完高度高的竹子后由于高度变低,所以可能会跟原来高度低的竹子一块被砍  所以策略后半部分为 尽可能制造出多的高度相同的连续竹子  然后一起砍

实现细节:会卡sqrt的精度 只能过65%的数据

每次利用堆取出  并记录下最高竹子的长度和编号 之后利用长度相同 编号相邻的竹子一起砍一次的策略 只砍一次 依次入堆

AC代码展示

如果觉得有用 就点赞+收藏 关注一下吧

#include <bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'
using namespace std;
typedef long long LL;
typedef pair<LL,int> PLI;
const int N=2e5+10;
int n;
LL x,res;
priority_queue<PLI> q;void solve(){while(!q.empty()){PLI t=q.top(); q.pop();LL t1=t.first; int t2=t.second;LL high=sqrtl(t1/2+1); //砍竹子//注意:此题会卡sqrt的精度 要用sqrtl 返回long doubleif(high!=1) q.push({high,t2});//其实也可以理解为 对连续且长度相同的树的一列 就一起砍了 减少次数while(!q.empty()&&q.top().first==t1&&q.top().second==t2-1){t2--;q.pop();if(high!=1) q.push({high,t2}); //注意 放的时候 竹子的高度是砍过的 }res++; //出现高度不同或编号不连续 即不能连续砍时 就++一次 每次取出一颗树 最后就会砍一次 只不过贪心一下是否可以一次多砍几棵树 }
}int main(){IOS;cin>>n;for(int i=0;i<n;i++){cin>>x;if(x!=1) q.push({x,i});} solve();cout<<res<<endl; return 0;
}

 

 

http://www.yayakq.cn/news/158025/

相关文章:

  • wordpress 仿站教程扬州做网站的价格
  • wordpress双语网站设计网页分析
  • 做提升自己的网站手机网站生成app
  • 网站后台 页面内容不显示网站建设马鞍山
  • 站长论坛计算机网站建设论文范文
  • 厚街镇网站建设公司小鸟云服务器官网
  • 大型网站制作平台终端安全管理系统
  • 免费做网站可以一直用吗安徽省高路建设有限公司网站
  • 网站后台登陆不了信誉好的购物网站
  • 找培训机构的网站郑州网站建设郑州网站建设
  • 网站建设网络推广wordpress 二次元插件
  • 在线网站转app网站漂浮广告怎么做
  • 静海商城网站建设dplayer wordpress
  • wordpress自定义站点做旅游网站会遇到什么问题
  • dw 个人网站怎么做wordpress增加会员中心
  • 设计企业网站哪家好便宜点的网站空间
  • 免费软件网站大全211工程建设网站
  • 服装销售网站建设策划书百度云用流量做网站
  • 手机网站设计知识做装修那个网站好
  • 网站开发环境和运行环境网站开发 图片铺满
  • 无锡宜兴网站建设个人租车网站源码
  • 网站logo设计创意广西住建局
  • 中山网站建设文化案例天津网站搭建
  • 南京网站建设案例海外推广代理商
  • 权威发布是指什么宁波seo优化流程
  • 一般什么企业需要建站4500急招一位接送小孩阿姨附近
  • wordpress建企业网站网站建设要准备的内容
  • 怎么通过微博做网站外链wordpress虎嗅网
  • 网站设计制作案例php网站开发实例教程思考题
  • 深圳自适应网站建设价格一键搭建论坛