摘要:
法一:暴力$O({n^2})$看脸过 法二:map优化,存储sum数组的下标,复杂度$O(n\log n)$ 法三:二分复杂度$O(n\log n)$,特别注意二分时的判断条件,很容易出错,idx和sum不可以一起判断,只能判断完sum,再独自判断idx,否则答案会出错 阅读全文
摘要:
解题关键:注意为什么上界是$\sqrt {2n} $ 因为函数是关于m的递减函数,而结果必须为正整数 $a = \frac{{2n + m - {m^2}}}{{2m}} = \frac{n}{m} + \frac{1}{2} - \frac{m}{2}$ 将$\sqrt {2n} $带入,结果为$ 阅读全文
摘要:
算法复杂度: 复杂度计算出来后有什么用? 估计程序能否在规定时间内处理题目指定规模的数据 ACM有时间限制1s “规模”的举例 1.给N个数排序 规模:N 2.判断字符串P是否是字符串T的子串 规模:串的长度|P|和|T| 3.判断一个整数是否属于整数集合S 规模:|S| 要判断多少次(查询次数) 阅读全文
摘要:
解题关键:数位dp,对每一位进行考虑,通过过程得出每一位上1出现的次数 1位数的情况: 在解法二中已经分析过,大于等于1的时候,有1个,小于1就没有。 2位数的情况: N=13,个位数出现的1的次数为2,分别为1和11,十位数出现1的次数为4,分别为10,11,12,13,所以f(N) = 2+4。 阅读全文