摘要:
T1静音问题 这个题做的比较满意,主要考察单调队列,大概花费了10min左右 T2课后答疑 这个题卡了很久的暴力写法,大概一半多的时间都在调这道题的暴力写法,花了很久过掉暴力,然后就有点懵了,导致考试的时候没太想清楚怎么优化 但其实很简单,f[i]表示处理了前i个学生的问题的答案, 然后 f[i] 阅读全文
摘要:
T1 乘方 这个题真的是很简单,就特判一下1的情况,其它情况直接暴力枚举即可 考试的时候也是非常快的想到 T2 解密 也比较容易 首先我们把ed = (p_i−1)(q_i−1)+1打开 变为ed = pq−p−q+1+1 将n = pq带入原式得: ed = n−p−q+2 那么我们现在有了两个式 阅读全文
摘要:
T1动态询问 这个题主要考察快速排序求第k小O(n)的时间复杂度完成的方法 主要错误原因在于,在一些情况下x与y并不连续,中间可能会各一个数,所以它的k需要注意 这道在这个点上卡了很久,大概花费了1h左右,但感觉应该可以更快的解决,主要在于那道题没学好,一直记了一个错误的算法 T2财富计算 这个题做 阅读全文
摘要:
快速排序 每次找一个基准值,比基准值小的放左边,比基准值大的放右边,在分别对左右排序 标准代码: void work(int l,int r) { if (l >= r) return; int mid = (l+r)/2; mid = a[mid]; int x = l,y = r; while 阅读全文
摘要:
维护GCD 给出一个长度为n(1<=n<=10^5 )的序列和q(1<=q<=3*10^5)个询问,每个询问输出一行,询问gcd(a_i,a_i+1,...,a_j)=x的(i,j)的对数。 思考:首先GCD是可以重叠的符合ST表,其次思考f[l][len]如何转移,通过之前的学习可知f[l][le 阅读全文
摘要:
ST表 一、引入 如何解决区间最值问题? 最容易想到的就是暴力枚举,但是很明显,速度过于慢,所以引入ST表 二、ST表 我们令f[i][len]表示以i开头长度为1<<len的最大值 由此可以突出初始值为f[i][0] = a[i] 接下来思考转移,我们就是要把f[i][len]拆成两个更容易就觉得 阅读全文