首页 > 其他分享 >51Nod 试题泛做1

51Nod 试题泛做1

时间:2023-06-22 09:56:44浏览次数:35  
标签:二分 ch return 试题 51Nod mid int read

A-排船的问题

很显然,这个数据范围用二分来找这个最长的最短是OK的,
然后我们就判断一下二分到的东西,用一个贪心,就是尽可能将每一个往左边放,但不能与船重叠,也不能超过我们二分到的最长的绳的长度,因为要尽可能给后面留出空间,让后面的绳的长度不超过我们二分到的长度。
然后如果最后极限的方法仍飞出了港口,那自然就是不行的,就继续二分。

可以这样理解。

点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int MAXN=5e4+5;

inline int read()
{
    int x=0,f=1;char ch=getchar();
    while(!isdigit(ch))
    {
        if(ch=='-') f=-1;
        ch=getchar();
    }
    while(isdigit(ch))
    {
        x=(x<<1)+(x<<3)+(ch^48);
        ch=getchar();
    }
    return x*f;
}

int n,x,m;
int p[MAXN];

inline bool check(int pos)
{
    int head=0,tail=0;
    for(int i=1;i<=n;i++)
    {
        head=tail;
        if(head+x>p[i]+pos) return false;
        tail=max(head+2*x,p[i]-pos+x);
    }
    if(tail>m) return false;
    return true;
}

int main()
{
    n=read(),x=read(),m=read();
    for(int i=1;i<=n;i++) p[i]=read();
    if((x*2*n)>m) {printf("-1\n");return 0;}
    int l=0,r=m-1,ans;
    while(l<=r)
    {
        int mid=(l+r)>>1;
        if(check(mid))ans=mid,r=mid-1;
        else l=mid+1;
    }
    printf("%d\n",ans);
    return 0;
}

B-稳定桌

点击查看代码

标签:二分,ch,return,试题,51Nod,mid,int,read
From: https://www.cnblogs.com/code-ac/p/17497503.html

相关文章

  • 20230621下午面试题
    1.数据库了解那些?2.docker了解吗?3.今后的职业规划?4.能不能写方案?5.在项目中担当的角色?6.想考那些证书?7.籍贯?空缺期?有无女朋友?住哪里?8.有什么想问我的吗?9.最低接受的薪资是?10.最快到岗时间?   xiaozimashuke......
  • 全职爸爸,是程序员的加试题
     哥哥:爸爸我问你,有一种鲨鱼,它的头像锤子,是海底的杂食动物,它叫什么名字?周自恒:锤头鲨哥哥:对了,不过锤头鲨不是它本来的名字……周自恒:双髻鲨哥哥:对了!周自恒:……等会儿,你是不是双髻鲨的髻字不认识才这么问我的……哥哥:……你怎么知道的全职爸爸这门职业,难度几颗星?周自恒家有两个孩子,哥......
  • 2023年Android社招面试题集锦(最近准备面试的可以看看~)
    最近有不少小伙伴咨询社招,春招的事情,小编这里收纳了一篇《如何找到一份实习工作》的内容,作者是阿木(一家知名的互联网大厂),这篇内容算是他对自己找工作经历的一个总结吧,对于社招、在校生,尤其是想找实习的小伙伴会很有帮助,同时还有最新面试题汇总。顺带给大家同步一个关键的信息,暑期......
  • 线程池之 Executors(附面试题)
    线程池的创建分为两种方式:ThreadPoolExecutor和Executors,上一节学习了ThreadPoolExecutor的使用方式,本节重点来看Executors是如何创建线程池的。Executors可以创建以下六种线程池。FixedThreadPool(n):创建一个数量固定的线程池,超出的任务会在队列中等待空闲的线程,可用于控......
  • 史上最全Hadoop面试题:尼恩大数据面试宝典专题1
    文章且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪酬猛......
  • 前端面试题(css)
    1.css选择器(1)简单选择器(元素,Id,类来选取元素,通配选择器)(2)组合选择器(根据它们之间的特定关系来选取元素)(3)伪类选择器(根据特定状态选取元素)(4)伪元素选择器(选取元素的一部分并设置其样式)(5)属性选择器(根据属性或属性值来选取元素)2.层叠顺序当为某个HTML元素指定了多个样式时,会使用哪种样......
  • 前端面试题(js)
    1.this解析器在调用函数时,每次会向函数内部传递一个隐含的参数,这个隐含的参数就是this,this指向的是一个对象,根据函数调用方式的不同,函数会指向不同的对象。(1)以函数形式调用时,this永远指向window(2)以方法的形式调用时,this指向调用方法的对象(3)当以构造函数形式调用时,this指......
  • Java面试题集(136-150)
    Java程序员面试题集(136-150)摘要:这一部分主要是数据结构和算法相关的面试题目,虽然只有15道题目,但是包含的信息量还是很大的,很多题目背后的解题思路和算法是非常值得玩味的。136、给出下面的二叉树先序、中序、后序遍历的序列?答:先序序列:ABDEGHCF;中序序列:DBGEHACF;后序序列:DGHEBFCA。补......
  • Java面试题集(131-135)
    131、请对以下JavaEE中的名词进行解释答:容器:容器为JavaEE应用程序组件提供了运行时支持。容器提供了一份从底层JavaEEAPI到应用程序组件的联合视图。JavaEE应用程序组件不能直接地与其它JavaEE应用程序组件交互。它们通过容器的协议和方法来达成它们之间以及它们与平台服......
  • Java面试题集(116-135)
    Java程序员面试题集(116-135)摘要:这一部分讲解基于Java的Web开发相关面试题,即便在Java走向没落的当下,基于Java的Web开发因为拥有非常成熟的解决方案,仍然被广泛应用。不管你的Web开发中是否使用框架,JSP和Servlet都是一个必备的基础,在面试的时候被问到的概率还是很高的。116、说出Servl......