砍竹子——二分,模拟
问题描述
![](/assets/blank.gif)
输入格式
第一行为一个正整数 n, 表示竹子的棵数。
第二行共 n 个空格分开的正整数 hi, 表示每棵竹子的高度。
输出格式
一个整数表示答案。
样例输入
62 14267
样例输出
5
样例说明
其中一种方案:
21426214267→214262→214222→211222→111222→111111→214262→214222→211222→111222→111111共需要 5 步完成
评测用例规模与约定
![](/assets/blank.gif)
运行限制
语言 |
最大运行时间 |
最大运行内存 |
C++ |
2s |
256M |
C |
2s |
256M |
Java |
3s |
256M |
Python3 |
10s |
256M |
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=200010,M=10;
ll a[N][M];
ll s[M];
ll sqr(ll x)//sqrt只适用于int,所以要自己写一个函数
{ll ans=0,l=1,r=1e9;while(l<r){ll mid=l+r>>1;if(mid*mid<=x){l=mid+1;}elser=mid;}return l-1;
}
int main()
{int n;cin>>n;ll x;int ans=0;for(int i=0;i<n;i++){ int y=0;cin>>x;while(x>1){s[++y]=x;x=sqr(x/2+1);}ans+=y;for(int j=0,k=y;k;j++,k--){a[i][j]=s[k];}}for(int j=0;j<M;j++){for(int i=1;i<n;i++){if(a[i][j]&&a[i][j]==a[i-1][j])ans--;}}cout<<ans;return 0;
}
砍竹子——二分,模拟相关推荐
- [蓝桥杯2022初赛] 砍竹子
题目描述 这天,小明在砍竹子,他面前有 n 棵竹子排成一排,一开始第 i 棵竹子的高度为 hi. 他觉得一棵一棵砍太慢了,决定使用魔法来砍竹子. 魔法可以对连续的一段相同高度的竹子使用,假设这一段竹子 ...
- 蓝桥杯2022砍竹子
P2040 - [蓝桥杯2022初赛] 砍竹子 - New Online Judgehttp://oj.ecustacm.cn/problem.php?id=2040 #include <bit ...
- 【洛谷】P8787 [蓝桥杯 2022 省 B] 砍竹子 的题解
[洛谷]P8787 [蓝桥杯 2022 省 B] 砍竹子 的题解 题目传送门 思路 这个题有两个做法,一种是用 set 或者堆来维护一个高度到区间的映射,另一个用并查集维护区间. 这个题本质是一个最长 ...
- [蓝桥杯 2022 省 B] 砍竹子
来源: [蓝桥杯 2022 省 B] 砍竹子 题目描述 这天,小明在砍竹子,他面前有 n n n 棵竹子排成一排,一开始第 i i i 棵竹子的高度为 h i h_{i} hi. 他觉得一棵一棵砍太 ...
- Python: 砍竹子(栈)
问题描述 这天, 小张在砍竹子, 他面前有 n 棵竹子排成一排, 一开始第 i 棵竹子的 高度为 hi. 他觉得一棵一棵砍太慢了, 决定使用魔法来砍竹子.魔法可以对连续的一 段相同高度的竹子使用, ...
- 2022蓝桥杯省赛——砍竹子
问题描述 这天, 小明在砍竹子, 他面前有 n 棵竹子排成一排,一开始第 i 棵竹子的 高度为 hi. 他觉得一棵一棵砍太慢了, 决定使用魔法来砍竹子.魔法可以对连续的一 段相同高度的竹子使用, 假 ...
- 蓝桥杯——砍竹子问题(C++)
问题描述 评测用例规模与约定 输入格式 输出格式 样例输入 6 2 1 4 2 6 7 样例输出 5 观察题目,不难想到的第一种方法,即利用贪心策略,每次砍断竹子最大的且连续的队列,由于队列中会出现很 ...
- 蓝桥杯 - 试题 J: 砍竹子(双向链表+堆/思维)
题目大意:给出一排 nnn 个竹子的高度,每次操作可以选择连续的,高度相同的竹子,使其高度变为 ⌊⌊H2+1⌋⌋\lfloor \sqrt{\lfloor \frac{H}{2}+1\rfloor} ...
- CodeForces - 1236D Alice and the Doll(贪心+二分+模拟)
题目链接:点击查看 题目大意:给出一个n*m的矩阵,矩阵中有k个障碍物,在点(1,1)处有一个洋娃娃,洋娃娃每次的行动路线只能是直走或右拐,初始时洋娃娃面朝正右方向,问洋娃娃能否将所有方格都走一遍,并 ...
最新文章
- Kinect for windows的脸部识别
- 端口映射的几种实现方法
- md5加密算法原理及其GO语言实现
- ThreadLocal怎么实现线程隔离的?可见性问题?为什么要重新定义一个threadLocalHashCode?为什么有内存泄露?弱引用又是什么?
- Linux系统vi编辑器执行命令,linux下vi编辑器命令
- 在项目中增加自定义icon图标
- 七十一、Springboot整合MyBatis(注解版)
- idea yml文件不变成树叶_springboot获取配置文件的三种方式
- Windows Server 2012 在个人终端上使用的推荐设置
- Android之判断网络状态(网络的连接,改变,和判断2G/3G/4G)
- 4G物联网网关和工业路由器的区别
- 第四十八期:你太菜了,竟然不知道Code Review?
- Android实现计时与倒计时(限时抢购)的几种方法
- 通过实例讲解java接口和抽象类的特殊实现方法
- 百度学术打开不了?怎么办
- 将CSS文件转换为标准格式
- C#读取写入excel单元格
- 移位运算(左移和右移)
- 16位二进制补码 c语言,2,16进制原码补码反码问题
- 3blue1brown线性代数的本质笔记