p1824进击的奶牛(代码片段)

liqgnonqfu liqgnonqfu     2023-01-05     233

关键词:

题目大意:

       将c个奶牛放入n个隔间,一直隔间的坐标,问如何放才能使奶牛相邻的距离的最小值最大。(0<=xi<=1,000,000,000)(2<=N<=100,000)。

思路: 

       显然是二分答案,主要是分好后的验证。开始我总想一个一个放看是否满足,但是极端情况下复杂度太大。实在优化不了(其实线段树应该可以优化寻找位置的过程,但太麻烦而且我也忘了),看了洛谷上的题解,其实验证的时候,只用访问一遍隔间尽量的多放牛,若最多放牛数大于c就是满足的。

 

技术分享图片
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 
 5 using namespace std;
 6 
 7 int n,c,a[1000006],l,r;
 8 
 9 bool judge(int x)
10 
11     int cnt=0,tem;
12     cnt++;
13     tem=a[1];
14     for(int i=2;i<=n;i++)
15     
16         if(a[i]-tem>=x)
17         
18             cnt++;
19             tem=a[i];
20         
21     
22     if(cnt>=c)return true;
23     else return false;
24 
25 
26 int main()
27 
28     scanf("%d%d",&n,&c);
29     for(int i=1;i<=n;i++)scanf("%d",&a[i]);
30     sort(a+1,a+1+n);
31     l=a[1];r=a[n];
32     while(l+1<r)
33     
34         int mid=(l+r)/2;
35         if(judge(mid))l=mid;
36         else  r=mid;
37     
38     printf("%d
",l);
39     return 0;
40  
View Code

 

/***********不明白普及-是什么概念,感觉比提高还难。(可能我对二分本身就不熟悉吧,记得以前做这题的时候好像就看了题解)************/

洛谷p1824进击的奶牛题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置。题目链接:https://www.luogu.org/problem/show?pid=1824题目描述FarmerJohn建造了一个有N(2<=N<=100,000)个隔间的牛棚,这些隔间分布在一条直线上,坐标是x1,...,xN... 查看详情

p1824进击的奶牛(二分)(代码片段)

思路:把检验的函数说一下,就是检测的距离x时,是否存在c个隔断相离大于等于x,如果是则返回1,不是则返回0#include<iostream>#include<cstdio>#include<algorithm>usingnamespacestd;constintmaxn=1e5+10;inta[maxn],n,c,minn=0x3f3f3f3f,ans,mid;boo... 查看详情

luogup1824进击的奶牛

题目描述FarmerJohn建造了一个有N(2<=N<=100,000)个隔间的牛棚,这些隔间分布在一条直线上,坐标是x1,...,xN(0<=xi<=1,000,000,000)。他的C(2<=C<=N)头牛不满于隔间的位置分布,它们为牛棚里其他的牛的存在而愤怒。为了防止牛... 查看详情

奶牛排队(代码片段)

题意 【问题描述】奶牛在熊大妈的带领下排成了一条直队。显然,不同的奶牛身高不一定相同……现在,奶牛们想知道,如果找出一些连续的奶牛,要求最左边的奶牛A是最矮的,最右边的B是最高的,且B高于A奶牛,... 查看详情

奶牛排序——rmq(代码片段)

【问题描述】奶牛在熊大妈的带领下排成了一条直队。显然,不同的奶牛身高不一定相同……现在,奶牛们想知道,如果找出一些连续的奶牛,要求最左边的奶牛A是最矮的,最右边的B是最高的,且B高于A奶牛,且中间如果存在... 查看详情

奶牛会展(代码片段)

题目背景奶牛想证明它们是聪明而风趣的。为此,贝西筹备了一个奶牛博览会,她已经对N头奶牛进行了面试,确定了每头奶牛的智商和情商。题目描述贝西有权选择让哪些奶牛参加展览。由于负的智商或情商会造成负面效果,... 查看详情

奶牛抗议(代码片段)

题目Description约翰家的N头奶牛正在排队游行抗议。一些奶牛情绪激动,约翰测算下来,排在第i位的奶牛的理智度为Ai,数字 可正可负。约翰希望奶牛在抗议时保持理性,为此,他打算将这条队伍分割成几个小组,每个抗议小... 查看详情

奶牛的聚会(代码片段)

农历新年马上就要到了,奶牛们计划举办一次聚会庆祝新年的到来。但是,奶牛们并不喜欢走太远的路,这会给他们的聚会带来消极情绪,当一头奶牛的消极指数为 w_iwi? ,他参加聚会所需行走的距离为 s_isi? ,那... 查看详情

前端-进击的巨人-青铜篇(代码片段)

从事前端有4年多了,经历了不少坑,也摸索了一些经验。既然是随笔,那就随便写写了。按照农药的等级,依次是青铜、白银、黄金、铂金、钻石、星耀、王者。以我现在的能力也就是黄金到铂金。那么写到哪算哪把。 既... 查看详情

usaco2004moofest奶牛集会(代码片段)

题目问题描述约翰的n头奶牛每年都会参加“哞哞大会”。哞哞大会是奶牛界的盛事。集会上的活动很多,比如堆干草,跨栅栏,摸牛仔的屁股等等。它们参加活动时会聚在一起,第i头奶牛的坐标为Xi,没有两头奶牛的坐标是相... 查看详情

p1578奶牛浴场(代码片段)

题目描述由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少。为了讨好奶牛,John决定在牛场中建造一个大型浴场。但是John的奶牛有一个奇怪的习惯,每头奶牛都必须在牛场中的一个固定的位置产奶,而奶牛显... 查看详情

奶牛家谱cowpedigrees(代码片段)

令人窒息的奶牛题题目描述农民约翰准备购买一群新奶牛。在这个新的奶牛群中,每一个母亲奶牛都生两个小奶牛。这些奶牛间的关系可以用二叉树来表示。这些二叉树总共有N个节点(3<=N<200)。这些二叉树有如下性质:每一个... 查看详情

lougup2344奶牛抗议(代码片段)

题目背景GenericCowProtests,2011Feb题目描述约翰家的N头奶牛正在排队游行抗议。一些奶牛情绪激动,约翰测算下来,排在第i位的奶牛的理智度为Ai,数字可正可负。约翰希望奶牛在抗议时保持理性,为此,他打算将这条队伍分割成几... 查看详情

[usaco]2004openmoofest奶牛集会(代码片段)

题目背景MooFest,2004Open题目描述约翰的N头奶牛每年都会参加“哞哞大会”。哞哞大会是奶牛界的盛事。集会上的活动很多,比如堆干草,跨栅栏,摸牛仔的屁股等等。它们参加活动时会聚在一起,第i头奶牛的坐标为Xi,没有两头... 查看详情

洛谷1578:[wc2002]奶牛浴场——题解(代码片段)

...gu.org/problemnew/show/P1578#sub由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少。为了讨好奶牛,John决定在牛场中建造一个大型浴场。但是John的奶牛有一个奇怪的习惯,每头奶牛都必须在牛场中的一个固定的位置... 查看详情

进击javascript核心---基本数据类型(代码片段)

ES5之前提供了5种基本数据类型和1种引用数据类型基本数据类型:Undefined,Null,String,Number,Boolean引用数据类型:Object ES6开始引入了一种新的基本数据类型Symbol,表示独一无二的值1、typeof操作符typeof是一个操作符而不是函数,因... 查看详情

排序奶牛的编号(代码片段)

题目描述有N(1≤N≤1000)头奶牛,它们都被标上一个优先等级编号:1,2或3。用来表示它们喝水时的优先次序,编号为l的最优先,编号为2的其次,编号为3的最后。每天奶牛开始时排成一行,但总是很乱,需要你把它们重新排成... 查看详情

洛谷p1535游荡的奶牛(代码片段)

P1535游荡的奶牛题目描述Searchingfortheverybestgrass,thecowsaretravellingaboutthepasturewhichisrepresentedasagridwithNrowsandMcolumns(2<=N<=100;2<=M<=100).KeenobserverFarmerJohnhasrecordedBessie‘spo 查看详情