美文网首页
算法入门(3)奶牛枚举

算法入门(3)奶牛枚举

作者: 梦san国 | 来源:发表于2019-12-18 17:23 被阅读0次

描述

农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小隔间依次编号为x1,...,xN (0 <= xi <= 1,000,000,000).

但是,John的C (2 <= C <= N)头牛们并不喜欢这种布局,而且几头牛放在一个隔间里,他们就要发生争斗。为了不让牛互相伤害。John决定自己给牛分配隔间,使任意两头牛之间的最小距离尽可能的大,那么,这个最大的最小距离是什么呢?

输入
N 一个列表 存着 隔间编号 N长度大于等于2小于100000
C 牛的头数 大于等于2小于N
输出
3

def farmer_cattle(N,C):
    N.sort()
    print(N)
    distance = int(N[-1]/C)+1

    num = 1
    for x in range(distance,0,-1):
        distance = x
        location = N[0]
        for j in range(1,len(N)):
            if (N[j]- (location+distance))>=0:
                location = N[j]
                num+=1
                if num == C:
                    print("牛放完了,最大最近距离{}".format(distance))

                    return True
    return False

if __name__ == "__main__":
    cattle_list = [1,2,8,4,9]
    c= 3
    if len(cattle_list)<=100000 and len(cattle_list)>=2 and c>=2 and c<=len(cattle_list):
        print(farmer_cattle(cattle_list,c))

相关文章

  • 算法入门(3)奶牛枚举

    描述 农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小隔间依次...

  • 算法学习3_枚举

    枚举算法又称穷举算法枚举算法的核心思想 : 有序的尝试每一种可能 题一、 3 * 6528 = 3 * 8256 ...

  • 算法入门(4)奶牛二分

    疯牛问题的二分贪心算法:加入二分查找速度快了不少。这里把r的最大值设置为: int((N[-1] - N[0])/...

  • 算法 | 枚举算法

    【算法思想】 利用计算机运算速度快的特点,对问题的所有可能答案一一列举,并逐一检验,符合条件的保留,不符合的丢弃。...

  • 2018-08-02

    php实现组合枚举算法 源码

  • 枚举算法

    枚举法:又称穷举法,是指从可能的集合中一一列举各个元素,用题目给定的约束条件判定哪些是无用的,哪些是有用的。能使命...

  • 枚举算法

    今天我们来讲一个万金油算法,这个算法可以解决所有的问题,它就是枚举法(穷举法)。 枚举算法是我们在日常中使用到的最...

  • 枚举算法

    枚举法的本质就是从所有候选答案中搜索正确的解,使用该算法需要满足两个条件: 可预先确定候选答案的数量。 候选答案的...

  • TypeScript基础入门 - 枚举 - 异构枚举和枚举成员

    转载 TypeScript基础入门 - 枚举 - 异构枚举和枚举成员 项目实践仓库 为了保证后面的学习演示需要安装...

  • TypeScript基础入门 - 枚举 - 联合枚举与枚举成员的

    转发 TypeScript基础入门 - 枚举 - 联合枚举与枚举成员的类型 项目实践仓库 为了保证后面的学习演示需...

网友评论

      本文标题:算法入门(3)奶牛枚举

      本文链接:https://www.haomeiwen.com/subject/icbunctx.html