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

培训网站开发机构重庆百度seo排名优化软件

培训网站开发机构,重庆百度seo排名优化软件,青海网站开发公司,WordPress的Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…

Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法......感兴趣就关注我吧!你定不会失望。

 

🌈个人主页:主页链接

🌈算法专栏:专栏链接

     我会一直往里填充内容哒!

🌈LeetCode专栏:专栏链接 

    目前在刷初级算法的LeetBook 。若每日一题当中有力所能及的题目,也会当天做完发出

🌈代码仓库:Gitee链接

🌈点击关注=收获更多优质内容🌈

 

开始准备蓝桥杯啦!这是计划的一部分,每天都会更新一个专题的内容,内容参考自acwing蓝桥杯辅导课,有兴趣的uu们也可以自行观看

二分查找模板在前几篇文章中有讲过 二分查找详解

题目:数的范围

给定一个按照升序排列的长度为 n的整数数组,以及 q 个查询。

对于每个查询,返回一个元素 k的起始位置和终止位置(位置从 00 开始计数)。

如果数组中不存在该元素,则返回 -1 -1

输入格式

第一行包含整数 n 和 q,表示数组长度和询问个数。

第二行包含 n个整数(均在 1∼100001∼10000 范围内),表示完整数组。

接下来 q 行,每行包含一个整数 k,表示一个询问元素。

输出格式

共 q行,每行包含两个整数,表示所求元素的起始位置和终止位置。

如果数组中不存在该元素,则返回 -1 -1

数据范围

1≤n≤100000
1≤q≤100001
1≤k≤100001

输入样例:

6 3
1 2 2 3 3 4
3
4
5

输出样例:

3 4
5 5
-1 -1

白话讲解:

非常经典的二分模板 ,通过前面的学习,我们知道二分查找有一个范围的问题,即是mid>= 还是mid>,也就是开闭区间的问题,这题完美诠释了这个特性

代码实现:

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
const int N=100010;
int n,m;
int q[N];
int main()
{scanf("%d%d",&n/*正数组长度*/,&m/*查询个数*/);for(int i=0;i<n;i++){scanf("%d",&q[i]);}while(m--){int x=0;scanf("%d",&x);int left=0,right=n-1;while(left<right){int mid=(left+right)>>1;if(q[mid]>=x)right=mid;else left=mid+1;}if(q[left]!=x)cout<<"-1 "<<"-1 "<<endl;else{cout<<left<<" ";int left=0,right=n-1;while(left<right){int mid=(left+right+1)>>1;if(q[mid]<=x)left=mid;else right=mid-1;}cout<<left<<endl;}}return 0;
}

题目:机器人跳跃问题

机器人正在玩一个古老的基于 DOS 的游戏。

游戏中有 N+1 座建筑——从 00 到 N 编号,从左到右排列。

编号为 00 的建筑高度为 00 个单位,编号为 i 的建筑高度为 H(i) 个单位。

起初,机器人在编号为 00 的建筑处。

每一步,它跳到下一个(右边)建筑。

假设机器人在第 k个建筑,且它现在的能量值是 E,下一步它将跳到第 k+1 个建筑。

如果 H(k+1)>E,那么机器人就失去 H(k+1)−E的能量值,否则它将得到 E−H(k+1)的能量值。

游戏目标是到达第 N个建筑,在这个过程中能量值不能为负数个单位。

现在的问题是机器人至少以多少能量值开始游戏,才可以保证成功完成游戏?

输入格式

第一行输入整数 N。

第二行是 N个空格分隔的整数,H(1),H(2),…,H(N) 代表建筑物的高度。

输出格式

输出一个整数,表示所需的最少单位的初始能量值上取整后的结果。

数据范围

1≤N,H(i)≤1e5

输入样例1:

5
3 4 3 2 4

输出样例1:

4

输入样例2:

3
4 4 4

输出样例2:

4

输入样例3:

3
1 6 4

输出样例3:

3

白话讲解:

也就是有一个机器人要进行平台跳跃

若平台比他现在的位置高,则需要扣除h(i)-E的能量,若他比平台高,则能获得E-h(i)的能量,要求跳跃中能量不能为负

题解:

分析两个扣除能量的规则就可以发现,不论高低与否,能量E=2E-h(i) ,也就是能量一直都是这样改变的,判断是否能用二分来搜寻答案最重要的就是判定其是否满足递增的条件(必要不充分),

当找到一个满足条件的E之后,大于E的情况下是都能跳跃过去.所以我们用二分来做.

int的数据范围最大为1e9,而观察这题题设范围,当h(i)足够小的时候,E=2E,有可能爆int,所以我们推断,当E=h(i)max时,此时表达式为E=E+h(i)max-h(i) h(i)无限小,即可忽略不计,所以当E=h(i)max时,即可表示其可跳跃过之后所有的格子.

也可以理解为,当我跳到最高点时,之后都是在增加能量,而不是减少,所以即可判定一定能跳过

另外,刚刚说过了>=E的条件都满足题解,所以这里的二分为left=mid+1 right=mid

不懂我在说什么的uu可以回顾下二分

check函数为:模拟跳跃每一次

代码实现:

#include<iostream>
#include<stdio.h>
using namespace std;
const int N=100010;
long n=0,h[N];
bool check(int e)
{for(int i=1;i<=n;i++){e=2*e-h[i];if(e>=1e5)return true;if(e<0)return false;}return true;
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&h[i]);}int l=0,r=1e5;while(l<r){int mid=l+r>>1;if(check(mid))r=mid;else l=mid+1;}printf("%d\n",r);}

题目:分巧克力蛋糕

儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。

小明一共有 N 块巧克力,其中第 i 块是 Hi​×Wi 的方格组成的长方形。为了公平起见,

小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:

  1. 形状是正方形,边长是整数;

  2. 大小相同;

例如一块 6x5 的巧克力可以切出 6 块 2x2 的巧克力或者 2 块 3x3 的巧克力。

当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?

输入描述

第一行包含两个整数 ,N,K (1≤N,K≤1e5)。

以下 N 行每行包含两个整数Hi​,Wi​ (1≤Hi​,Wi​≤1e5)。

输入保证每位小朋友至少能获得一块 1x1 的巧克力。

输出描述

输出切出的正方形巧克力最大可能的边长。

输入输出样例

示例

输入

2 10
6 5
5 6

输出

2

 

白话讲解:

有k个小朋友来家里,而我有N块巧克力,如何切出k个正方形,且每个正方形面积最大,输出边长

题解:

边越大则面积越大,但能分的块数就越少,所以我们要找到的是一个边最大,且块数等于k的边长

这题与上题的区别为,正方形的边长a不满足 a满足题意 比a大的都满足题意.但比a小的都满足题意,所以这题的区间为右半边为开区间,也即left=mid,right=mid-1.

check函数为wi/e*hi/e 这里可以理解为,巧克力总面积除以每一块巧克力的面积,即为块数,为什么是除/边长呢?向下取整.之后若>=k则说明满足题意返回即可,当所有巧克力切完还不满足,则返回false

代码实现:

#include <iostream>
using namespace std;
const int N=10010;
int h[N],w[N];
int n=0,k=0;
bool check(int e)
{int res=0;for(int i=0;i<n;i++){res+=(h[i]/e)*(w[i]/e);if(res>=k)return true;}return false;
}
int main()
{cin>>n>>k;for(int i=0;i<n;i++){cin>>h[i]>>w[i];}int l=1,r=1e5;while(l<r){int mid=l+r+1>>1;if(check(mid))l=mid;else r=mid-1;}printf("%d",l);return 0;
}

完结撒花:

🌈本篇博客的内容【分巧克力、机器人跳跃、数的范围】已经结束。

🌈若对你有些许帮助,可以点赞、关注、评论支持下博主,你的支持将是我前进路上最大的动力。

🌈若以上内容有任何问题,欢迎在评论区指出。若对以上内容有任何不解,都可私信评论询问。

🌈诸君,山顶见!

http://www.hkea.cn/news/835968/

相关文章:

  • 如何给网站做流量站长工具seo
  • 桂林网站开发建设推广任务接单平台
  • 化妆品 网站建设案例seo超级外链工具免费
  • 网站建设的广告语seo自动工具
  • 有专门做市场分析的网站么太原关键词优化报价
  • 网站文化建设搜索引擎推广的常见形式有
  • wordpress分类目录消失泸州网站seo
  • 易云巢做网站公司seo入门到精通
  • 新津网站建设百度ai助手入口
  • 做学校网站什么文案容易上热门
  • 网站开发技术包括郑州网站关键词排名
  • 网站开发预算怎么算百度竞价ocpc
  • 成都锐度设计公司怎么样优化大师怎么提交作业
  • 租用网站服务器东莞市网站建设
  • 馆陶县网站网站运营管理
  • 西双版纳傣族自治州医院seo搜索优化网站推广排名
  • wordpress站点网址小吃培训2000元学6项
  • 郑州网站制作天强科技seo百度发包工具
  • 江阴市住房与建设局网站seo工资多少
  • wordpress image.php南宁百度首页优化
  • 谢家华做网站百度指数与百度搜索量
  • wordpress 安装 ubuntu整站优化代理
  • 做公司网站协议书模板下载百度竞价推广公司
  • 福田蒙派克6座二手值多少钱重庆seo点击工具
  • 有了域名 怎么做网站外贸网站推广方法之一
  • 审美网站长春网站建设路
  • 网站 管理系统域名查询注册信息查询
  • 专业网站设计发展前景推广网站软文
  • 怎么建设seo自己网站网站优化推广教程
  • 最新app开发软件石家庄网站建设seo公司