NOIP模拟21+22】的更多相关文章

模拟21确实毒瘤...考场上硬刚T3 2.5h,成功爆零 T1.数论 看这题目就让人不想做,考场上我比较明智的打完暴力就弃掉了,没有打很久的表然后找规律. 正解貌似是乱搞,我们考虑一个比较显然的结论: 对于一个质数 p,我们考虑所有仅包含小于 p 的质因子的正整数集 G.不难发现: • 若 x ∈ G,且在 G 中已经有超过 K 个小于 x 的整数约数个数多于 x,即 x 一定不是良好的, 则 xp^c (c ≥ 0) 也一定不可能是良好的. 于是我们可以利用已知的良好的数筛出接下来“可能良好”…
读题总是读错是不是没救了... T1 Median 中位数:按顺序排列的一组数据中居于中间位置的数. 能用上的高亮符号都用上了... 当时忘了就离谱.... 理解什么是中位数(真是个憨憨)后就可以开始理解题目了 线性筛素肯定用上 然后按照$k$的奇偶性进行分类求解 用一个东西,叫经典指针,我们都这么叫它 用它标记每段序列的中间数,因为扫一边相当与一个移动窗口滑动,每次序列里改变的元素只有头和尾 所以就移动指针就行了,因为$S_2$序列明显是在教你如何随机数,他的单调性在一定区间内是有保证的 所以…
题解 \(by\;zj\varphi\) 对于这个序列,可以近似得把它看成随机的,而对于随机数列,每个数的分布都是均匀的,所以中位数的变化可以看作是常数 那么可以维护一个指向中位数的指针,同时维护有多少个小于等于它的数. 让这个指针跳值域,用有多少个小于等于它的数来判断 对于 \(k\) 为偶数的情况,维护两个指针即可 注意:素数要卡着筛,而且用 \(bitset\) 必须开 \(O2\) Code #include<bits/stdc++.h> #define ri register sig…
题解 \(by\;zj\varphi\) 首先,分析一下这个答案:本质上是求在一条路径上,选择了一些点,这些点的贡献是它周围的点权和 - 它上一步的点权 对于一棵树,可以先确定一个根,然后每条路径就可以分成向上和向下的两部分 那么定状态 \(dp_{i,j,0}\) 表示由 \(i\) 向 \(i\) 的子树走,选了 \(j\) 个点放磁铁,\(dp_{i,j,1}\) 则表示向上走 那么转移方程就很好想 \[dp_{i,j,0}=\max\{dp_{son\in son_i,j,0},dp_{…
题解 考试的时候遇到了这个题,没多想,直接打了优先队列,但没想到分差竟然不是绝对值,自闭了. 正解: 值域很小,所以我们开个桶,维护当前最大值. 如果新加入的值大于最大值,那么它肯定直接被下一个人选走. 如果不大于这个最大值,那么直接选择最大值,同时对最大值的桶减一,如果最大值的桶为零,那么往下跳值域直到一个桶不为零的. 因为这个最大值是单调不增的,所以时间复杂度一次是 \(\mathcal O\rm (n)\) 总的就是 \(\mathcal O\rm (nk)\). 代码很好打,知道思路后五…
可爱的Dybala走了..(当然只是暂时) 又考了大众分.从rank5到rank17一个分. T1 折纸 秒切,爽啊 天皇偷看我代码,结束看见我A了还很惊讶,说我代码有锅 好沙雕哦 就跟个2b似的. T3 reverse 调个reverse函数了事. T2 不等式 感觉是道好题. 部分分秒切(我没得全我没脸说)然后第一次在考场上去推这类数学题的正解 (三道数学题,蒟蒻伤不起.) 考场思路: 50分很好拿的样子(flag),那我去想100(?你不知道你弱) 草稿纸上画图. emm一个点在线段上跳来…
中位数要排序!!!!!! 中位数要排序!!!!!! 中位数要排序!!!!!! 中位数要排序!!!!!! 中位数要排序!!!!!! 分差不加绝对值!!!! 分差不加绝对值!!!! 分差不加绝对值!!!! 分差不加绝对值!!!! 分差不加绝对值!!!! 如果你在考场的时候发现了这个秘密,那么你至少 \(rk3\) 然而并没有 两个秘密都没有发现,然后成功获得了了 \(12pts\) 的高分. \(\huge{\text{果然连胜之后必是连败}}\) 战神除外 考场的时候心态不够稳定,在发现 \(T1…
考试总结:这次考试题,有好多部分分,导致了我在考试过程中一心想拿到这些部分分,对于正解没有留出时间进行思考,这是一个教训,在以后的考试中我一定要留出足够的思考时间,不要被部分分限制.还有,我的部分分也没有拿满,犯了一些zz的错误,有因为数组开小的,还有没有控制好优先级的(对于特殊性质的特殊解法),还有自己没有验证正确性的一些暴力优化,还遇到了一个因为我懒,没去学的知识点(痛失20分).总体来说,这次考试我暴露出的问题有许多,在以后的考试中我会进行改正. T1 d 思路:很显然,我们要求矩形并起来…
开题发现这场考过,定睛一看,发现是省选前最后一场,没改过呀--但是还是讲武德的赛时没提交 A. Median 神奇之处在于 \(1e7\) 个质数居然能线性筛出来~ 那么 \(S2\) 可以直接筛出来 接着就是求一个值域 \(2*10^7\) 的数列的固定区间动态中位数 首先各种 \(log\) 算法很好想但是过不了 必须是线性 如果排不了序很难受,可以用桶排来实现 由于数据等同于随机,那么每次暴力移动指针期望复杂度很低,直接暴力扫即可 但是写起来非常难写-- 对于 \(k\) 为偶数时考虑维护…
T1:Median   线性筛+桶+随机化(??什么鬼?).   首先,题解一句话秀到了我: 考虑输入如此诡异,其实可以看作随机数据   随机数据??   这就意味着分布均匀..   又考虑到w<=k<=n   可以用桶了.   中位数暴力算的话是排序后取中间.   但是时间明显不允许.只能\(O(n)\)过掉.所以要维护两个中位数指针(k%2==1当然就是一个了).   由于数据随机,分布均匀,所以可以直接跳桶.   笑死,我当时不信还把数据输了出去,发现有的相邻数据差了几百,就这还能直接跳…