8月12日集训

来源:互联网 发布:电子视频制作软件 编辑:程序博客网 时间:2024/05/17 12:52
         今天主要是学习二分,首先看了一下甩干衣服这道题,   这道题有几个坑,思路:首先可以想到二分枚举答案。枚举一个mid值时,若一件衣服的水量大于mid,则一件衣服的最短时间是烘干一段时间,在自己蒸发一段时间。可以算出烘干的时间,为(num[i] - mid) / (k - 1)。这样把所有衣服的时间加起来,判断可行就好了,但是这里有好多陷阱,首先每分钟烘干k单位的水,于是我就想当然地除k向上取整了((a[i] – mid) / k)。其实应该除以k-1,所以公式就变成了(a[i]-x+k-2)/(k-1)这样就可以向上取整了,当k=1的时候,很显然会发生除零错误,需要特殊处理。然后再看Largest Rectangle in a Histogram 这道题,首先用暴搜肯定要超时,所以要优化算法,我吧每一个都当做最小的柱子然后找范围l[i]表示比a[i]大的数连续的最左边的位置r[i]表示比a[i]大的数连续的最右边的位置然后吧他乘起来得到结果。最后看的是Feel Good这道题,感觉相当难,题意很好懂,但是不能用暴力,大佬们说用单调队列,但想了很长时间都没想到怎么用单调队列解决这道题.....
原创粉丝点击