首页 > 牛牛的揠苗助长
头像 段三园的小迷弟
发表于 2020-05-09 01:11:23
(货仓选址问题)在数轴上选一点,使得该点到其他点的距离和最小 结论:选择该组数字的中位数即可, 一共n个数,当n为奇数时,中位数【(n+1)/2】,当n为偶数时,a【(n+1)/2】~a【(n+1)/2+1】之内的数皆可 这个题目出现至少,八成就是二分 那么证明下天数是分成两段的 展开全文
头像 JQK2020
发表于 2020-05-08 22:14:01
考虑到要找最小天数,我们二分天数k,然后判断是否满足即可。在check函数中,我们找出在不用魔法时k天后各个秧苗高度,用b[N]表示,然后问题转化为对数组b进行最多k次操作,是否能将b[N]各个数变相等,显然我们可以枚举b[N],设当前b[i]为x,然后将x作为最终的值,再对b[N]作差值,求出当前 展开全文
头像 ksdg恍然大明白
发表于 2020-05-08 22:21:30
方法:二分答案合理性:假设K天能恰好能解决问题,那么K+1必然也行(可以把k+1天增长的那个用魔法减去),所以K天之后都是可以的。现在二分答案:假设第K天可以,那么可以在O(N)的复杂度从a数组里得到不使用魔法的b数组。(例如 3 3 5 经过 2 天 变成 4 4 5)然后现在考虑使用魔法,把b数 展开全文
头像 Anonytt
发表于 2020-05-08 23:18:45
这个题我没想到二分天数,然后又不知道一个数学定理:数列各个数到中位数的距离和最小,然后就很拉胯...思路大概就是:首先对于day来二分,group=day/n,代表经过了几轮,remain=day%n,表示在最后当前的一轮中有几天已经过去了。然后对于每个点临时的temp[i]=group+a[i], 展开全文
头像 lingdie
发表于 2020-05-08 22:19:04
一眼二分分天数,然后就是要找合适的高度满足操作数小于天数两种方法: 二分的check函数里面三分高度,我们可以发现高度关于操作数是一个凹函数.要注意临界值 #include <bits/stdc++.h> using namespace std; typedef long long 展开全文
头像 谷巨基
发表于 2020-05-09 09:40:25
牛客练习赛63 C题:牛牛的揠苗助长 比赛时的心路历程:如果直接暴力会超时(亲身试错),所以要寻求一个更快速的算法,最后想到是用二分算。首先我们需要明白一个前提:如果说经过了x天后所有水稻都达到了相同高度,那么以后将能够持续保持相同高度,因为每天只有一块水稻自然生长,我们只需要使用魔法将它压回 展开全文
头像 谷巨基
发表于 2020-05-09 09:43:30
牛客练习赛63 C题:牛牛的揠苗助长比赛时的心路历程:如果直接暴力会超时(亲身试错),所以要寻求一个更快速的算法,最后想到是用二分算。首先我们需要明白一个前提:如果说经过了x天后所有水稻都达到了相同高度,那么以后将能够持续保持相同高度,因为每天只有一块水稻自然生长,我们只需要使用魔法将它压回去就行了 展开全文
头像 wxyww
发表于 2020-05-11 14:39:42
solution 显然答案具有单调性,如果答案为c。而对于任意一个,我们都可以在(c+1)~a的这些天里,让生长1的那个植株减1. 所以我们考虑二分答案,如果我们二分了一个答案x,我们可以先让那些水稻按照规则生长x天,最后再进行最多x次操作使他们高度相同即可。 那么现在问题就变为了,已经知道所有水稻 展开全文
头像 精神病科黄主任
发表于 2020-05-14 18:21:29
题目描述牛牛有一块长度大小为n的菜园,他首先对这块菜园从1到n进行了编号,每一块地分别为1号、2号...n号菜地,然后他往每块菜地中都种下了一些水稻,一开始,第i块菜地中的水稻高度均为a[i]个单位。然后我们知道水稻的生长周期都是n天,也就是说每逢n天水稻就会长高一个单位。但是不巧的是整个菜园中每一 展开全文
头像 CCCCCHHHGG
发表于 2020-05-09 09:46:29
刚开始做这个题目以为是贪心???唉,一直没思路,后来看了题解,原来是二分。。。。我们假设第x天为当前最优解,小于x的都不是最优解,如果小于x的话那么就会与当前得到的最优解矛盾,如果冲突的话我们应该更新当前最小值,大于x的都不是最优解,符合二分的条件------具有某种神秘性质(单调性)。长到第x天的 展开全文

等你来战

查看全部