摘要: 新鲜热乎的题 Codeforce 1175 D。 题意:给出一个长度为$n$的序列$a$,你需要把它划分为$k$段,每一个元素都需要刚好在其中一段中。分好之后,要计算$\sum_{i=1}^{n} (a_i \centerdot f(i))$,使这个值最大。其中$f(i)$代表第$i$个元素被分在第 阅读全文
posted @ 2019-06-06 01:25 sun_of_Ice 阅读(191) 评论(0) 推荐(0) 编辑
摘要: CF1105C Ayoub and Lost Array 题意:一个整数数组,满足: 1. 长度为n 2. 所有元素都在[l, r]范围内 3. 所有元素的和能被3整除给出n, l, r (1 ≤ n ≤ 2*10^5,1 ≤ l ≤ r ≤ 10^9)请找出符合条件的数组的个数,答案对 10^9 阅读全文
posted @ 2019-01-22 09:14 sun_of_Ice 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 一、认识并查集 并查集,逻辑上是一种集合,能够快速的实现合并和查询,因此得名。这里的查询指的是判断两个元素是否在同一集合。并查集能够高效地管理元素分组情况,为程序设计提供极大的便利。 并查集的本质是树形结构,属于同一集合的元素会位于同一颗树中。由于树的度和深度都不受任何限制,非常自由,我们可以很容易 阅读全文
posted @ 2018-08-06 21:30 sun_of_Ice 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 一、最基础的动态规划之一 01背包问题是动态规划中最基础的问题之一,它的解法完美地体现了动态规划的思想和性质。 01背包问题最常见的问题形式是:给定n件物品的体积和价值,将他们尽可能地放入一个体积固定的背包,最大的价值可以是多少。我们可以用费用c和价值v来描述一件物品,再设允许的最大花费为w。只要n 阅读全文
posted @ 2018-08-06 17:09 sun_of_Ice 阅读(7606) 评论(0) 推荐(5) 编辑
摘要: “离散化,就是把无限空间中有限的个体映射到有限的空间中去,以提高算法的时空效率。” 很多算法的复杂度与数据中的最大值有关,比如树状数组和纯用数组实现的一对一标记。时常会遇到这种情况:数据的范围非常大或者其中含有负数,但数据本身的个数并不是很多(远小于数据范围)。在这种情况下,如果每个数据元素的具体值 阅读全文
posted @ 2018-08-04 20:43 sun_of_Ice 阅读(5819) 评论(3) 推荐(11) 编辑
摘要: RMQ (Range Minimum/Maximum Query)问题,即区间最值查询问题,是求解序列中的某一段的最值的问题。如果只需要询问一次,那遍历枚举(复杂度O(n))就是最方便且高效的方法,但如果询问次数很多(m次),O(nm)的复杂度可能就不够看了。比较容易想到的优化方法是运用预处理的思想 阅读全文
posted @ 2018-08-04 15:32 sun_of_Ice 阅读(641) 评论(0) 推荐(0) 编辑
摘要: 幂运算是非常常见的一种运算,求取$a^n$,最容易想到的方法便是通过循环逐个累乘,其复杂度为$O(n)$,这在很多时候是不够快的,所以我们需要一种算法来优化幂运算的过程。 一、快速幂——反复平方法 该怎样去加速幂运算的过程呢?既然我们觉得将幂运算分为n步进行太慢,那我们就要想办法减少步骤,把其中的某 阅读全文
posted @ 2018-07-18 17:08 sun_of_Ice 阅读(20765) 评论(2) 推荐(21) 编辑
摘要: 一、定义 欧拉函数定理是数论中极其常用的一个定理。对于一个正整数n,它的欧拉函数值φ(n)代表小于n的正整数中与n互质的数的个数。例如,对于n = 9,在小于n的正整数中有1、2、4、5、7、8与9互质,所以φ(9) = 6。 欧拉函数定理给出了计算公式。正整数n的欧拉函数值,其中,p代表n的第几个 阅读全文
posted @ 2018-07-18 11:21 sun_of_Ice 阅读(513) 评论(0) 推荐(0) 编辑
摘要: 题目大意:tony现在有n种硬币,第i种硬币的面值为A[i],数量为C[i]。现在tony要使用这些硬币去买一块价格不超过m的表。他希望买的时候不用找零,问有多少种价格能满足这一点。 这个问题实际上是一个多重部分和的问题:假设有n种物品,每种物品的价值为v[i],数量为c[i],随意选取这些物品,能否使它们的价值之和恰好为m 阅读全文
posted @ 2018-07-13 20:29 sun_of_Ice 阅读(305) 评论(0) 推荐(0) 编辑