Loading

上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 31 下一页
摘要: 思路:检验函数中,先初始化每个节点的下标,每调用检验函数就从新使用一次并查集(并查集的时间复杂度非常低),然后,就看当一条路的价值val<=假设最大值x时,就把他们连接起来。 阅读全文
posted @ 2019-03-02 10:41 青山新雨 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 思路:先来分析一下数据范围,是1e4个数据,但是,是double类型,结果不超过0.01那么在绳子最大的情况下,单纯的找正确答案暴力的话就是1e7的时间复杂度,再乘上1e4的数据,这样肯定不行。那么很容易想到二分,在找答案时使用二分的话就可以让时间复杂度下降到log(1e7)这是一个比较小的值,起码 阅读全文
posted @ 2019-03-02 09:54 青山新雨 阅读(598) 评论(0) 推荐(0) 编辑
摘要: 思路:都在注解里 阅读全文
posted @ 2019-03-01 23:21 青山新雨 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 这道题让我见识了二分的新姿势。本来,我是二分的位置的。 思路:直接二分答案x, 关键是检验函数的写法: 先用前缀和 a[i....], 看满足多少段满足 a[ j ]-a[ i ]<=x; 的注意这里利用了贪心(因为,要使最大值最小,那么每一段要尽量接近x),然后,如果这样的段数刚好等于m 段时,就 阅读全文
posted @ 2019-03-01 22:46 青山新雨 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 思路:就是一个模板,只是找最小化而已。在判断函数里面:当湿度<=x*A不判断, 反之sum+=(a[i]-x*A)/B+(a[i]-x*A)%B?1:0; 阅读全文
posted @ 2019-03-01 22:01 青山新雨 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 思路: 求这个根,然后有一个关键的条件|x1-x2|>=1,然后就是从-100,枚举到+100,每次二分(i, i+1)注意如果f(i)*f(i+1)>0则不进行二分,如果,你觉得这样的值不行的话就把每次 i++ 变成 i+=0.5;就好了。反正数据范围很小.. 阅读全文
posted @ 2019-03-01 21:00 青山新雨 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 思路:这里就要看往那边贪心了,因为解决的是最大值最小化,最小值最大化。也就是说当满足大于等于c时,l=mid+1这样的二分得到的就是在所有满足条件函数下的最右端. 阅读全文
posted @ 2019-02-28 23:06 青山新雨 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 思路:把检验的函数说一下,就是检测的距离x时,是否存在c个隔断相离大于等于x,如果是则返回1,不是则返回0 阅读全文
posted @ 2019-02-28 22:15 青山新雨 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 这个文章是基于别的博客来讲的,反正根据自己的理解,然后写出来的。欢迎大佬吐槽。 卡特兰序列:1,1,2,5,14,42,132,429,1430... 通项就是 卡特兰数:卡特兰序列中的每一项,为卡特兰数, 既: 卡特兰数的引入: 在组合数学中有一类问题,为计数问题,比如正常的排列组合,斐波拉契数列 阅读全文
posted @ 2019-02-27 00:03 青山新雨 阅读(828) 评论(0) 推荐(0) 编辑
摘要: 思路:设dp[i][j]表示最大数为j,i为第i的位置的萌值。那么推导过程就是两种情况:1.第i位数不放数字,则结果就是dp[i-1][j]; 2.第i位放数字,则结果就是前面的萌值sum+dp[i-1][j]*j 阅读全文
posted @ 2019-02-25 22:33 青山新雨 阅读(184) 评论(0) 推荐(0) 编辑
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 31 下一页