首页 > 编程语言 >【基础】愤怒的奶牛 USACO c++

【基础】愤怒的奶牛 USACO c++

时间:2025-01-23 14:30:44浏览次数:3  
标签:输出 cnt last int USACO 用例 c++ 奶牛

描述

Farmer John建造了一个有N(2<=N<=100,000)个隔间的牛棚,这些隔间分布在一条直线上,坐标是x1,…,xN (0<=xi<=1,000,000,000)。

他的C(2<=C<=N)头牛不满于隔间的位置分布,它们为牛棚里其他的牛的存在而愤怒。为了防止牛之间的互相打斗,Farmer John想把这些牛安置在指定的隔间,所有牛中相邻两头的最近距离越大越好。那么,这个最大的最近距离是多少呢?

输入描述

第1行:两个用空格隔开的数字N和C。
第2~N+1行:每行一个整数,表示每个隔间的坐标。

输出描述

输出只有一行,即相邻两头牛最大的最近距离。

用例输入 1 

5 3
1 
2 
8 
4 
9 

用例输出 1 

3

来源

USACO 二分

代码

#include<bits/stdc++.h>
using namespace std;
int n,c,a[100005],l,m,r;
bool check(int m)
{
    int cnt=0;
    int d;
    int last=a[1];
    for(int i=2;i<=n;i++)
    {
        d=a[i]-last;
        if(d>=m)
        {
            cnt++;
            last=a[i];
        }
    }
    if(cnt+1<c)return true;
    else return false;
}
int main()
{
    cin>>n>>c;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    l=1;
    r=a[n]-a[1];
    while(l<=r)
    {
        m=(r+l)/2;
        if(check(m))
            r=m-1;
        else
            l=m+1;
    }
    cout<<r<<endl;
    return 0;
}

标签:输出,cnt,last,int,USACO,用例,c++,奶牛
From: https://blog.csdn.net/fusca123/article/details/145323004

相关文章

  • 打卡信奥刷题(651)用C++信奥P8396[普及组/提高] [CCC2022 S2] Good Groups
    [CCC2022S2]GoodGroups题目背景请注意:这道题是CCO2022J4GoodGroups的加强版。管理备注:似乎没有加强。题目描述一个班级会被分成ggg个组,每个组有三个人,这......
  • 详解类与对象——c++对象模型和this指针
    (^_^)一.成员变量和成员函数分开存储只有非静态成员变量才属于类的对象上classPerson{public:Person(){mA=0;}//非静态成员变量占对象空间intmA;//静态成员变量不占对象空间staticintmB;//函数也不占对......
  • c++ 智能指针
    1. unique_ptr:这种智能指针是用于独占一份内存资源,一个资源也就只允许被一个unique_ptr占用。离开作用域后自动删除,无需显式调用delete。并且不能复制,只能转移。原理实现:template<typenameT>classunique_ptr{private:T*ptr;public:explicitunique_ptr(T*p......
  • GESP2024年6月认证C++六级( 第三部分编程题(1)计算得分)
    参考程序:#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+10;inta[30];strings;intdp[N];intmain(){ intn; cin>>n; for(inti=1;i<=n;i++) { cin>>a[i]; } intm; cin>>m; cin>>s; for(inti=1;i<=......
  • 最新毕设-Django-新能源汽车推荐系统-30063(免费领项目)可做计算机毕业设计JAVA、PHP、
    摘要本论文主要论述了如何基于Django框架开发一个新能源汽车推荐系统,本系统将严格按照软件开发流程进行各个阶段的工作,爬取懂车帝的汽车信息,面向对象编程思想进行项目开发。在引言中,作者将论述新能源汽车推荐系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,......
  • 《 C++ 点滴漫谈: 二十二 》操作符炼金术:用C++ operator重塑代码美学
    摘要C++的operator关键字和操作符重载是语言的核心特性之一,使开发者能够扩展内置操作符以适应自定义类型,从而实现更高效、直观的代码表达。本文全面解析了operator关键字的基本概念、支持重载的操作符范围及其使用场景,详细介绍了操作符重载的语法、实现细节和底层机制......
  • 学生管理系统C++版(简单版)详解
    有错请指出啊~,答应大家的来了头文件:#include<iostream>#include<stdlib.h>#include<windows.h>iostream是标准头文件,stdlib.h也可以写成cstdlib,windows.h,用Sleep数据定义:intx,y=0;//x是输入,y是xm的下标,初始化y为0详解见代码。 结构体类型:structStudent{  c......
  • c++面试_RPC
    **RPC(RemoteProcedureCall,远程过程调用)**是一种计算机通信协议,它允许程序调用另一个地址空间(通常是远程服务器)的过程或函数,就像调用本地函数一样,而无需关心底层的网络通信细节。以下是对RPC的详细介绍以及它解决的问题:一、RPC的基本原理基本概念:RPC使客户端程序能......
  • 【C++BFS算法】1210. 穿过迷宫的最少移动次数|2022
    本文涉及知识点C++BFS算法LeetCode1210.穿过迷宫的最少移动次数你还记得那条风靡全球的贪吃蛇吗?我们在一个n*n的网格上构建了新的迷宫地图,蛇的长度为2,也就是说它会占去两个单元格。蛇会从左上角((0,0)和(0,1))开始移动。我们用0表示空单元格,用1表示障碍物。蛇......
  • 6.C++中的结构体
    C++中的结构体在C++中,结构体(struct)是一种用户自定义的数据类型,它允许将不同类型的数据组合在一起,形成一个新的复合数据类型。以下是关于C++结构体的详细介绍:定义与基本用法定义结构体:使用struct关键字来定义结构体。例如,要定义一个表示学生信息的结构体,可以这样写:st......