NOIP模拟21:「Median·Game·Park」】的更多相关文章

T1:Median   线性筛+桶+随机化(??什么鬼?).   首先,题解一句话秀到了我: 考虑输入如此诡异,其实可以看作随机数据   随机数据??   这就意味着分布均匀..   又考虑到w<=k<=n   可以用桶了.   中位数暴力算的话是排序后取中间.   但是时间明显不允许.只能\(O(n)\)过掉.所以要维护两个中位数指针(k%2==1当然就是一个了).   由于数据随机,分布均匀,所以可以直接跳桶.   笑死,我当时不信还把数据输了出去,发现有的相邻数据差了几百,就这还能直接跳…
题解 \(by\;zj\varphi\) 对于这个序列,可以近似得把它看成随机的,而对于随机数列,每个数的分布都是均匀的,所以中位数的变化可以看作是常数 那么可以维护一个指向中位数的指针,同时维护有多少个小于等于它的数. 让这个指针跳值域,用有多少个小于等于它的数来判断 对于 \(k\) 为偶数的情况,维护两个指针即可 注意:素数要卡着筛,而且用 \(bitset\) 必须开 \(O2\) Code #include<bits/stdc++.h> #define ri register sig…
T1:d   枚举.   现在都不敢随便打枚举了.   实际上我们只关注最后留下的矩阵中最小的长与宽即可.   所以我们将所有矩阵按a的降序排列.   从第\(n-m\)个开始枚举.   因为你最多拿走\(m\)个.   考虑到交面积是越交越小的,所以我们尽可能的多拿矩阵走.   我们将前\(n-m\)个矩阵丢进堆里,按b排序,小根堆.   我们只关心b第\(n-m\)大的矩阵,因为我们已经决定要刘m个了,原因已经说过了.   所以我们要让堆顶尽可能大.并维护堆的大小为\(n-m\)即可.具体实…
模拟21确实毒瘤...考场上硬刚T3 2.5h,成功爆零 T1.数论 看这题目就让人不想做,考场上我比较明智的打完暴力就弃掉了,没有打很久的表然后找规律. 正解貌似是乱搞,我们考虑一个比较显然的结论: 对于一个质数 p,我们考虑所有仅包含小于 p 的质因子的正整数集 G.不难发现: • 若 x ∈ G,且在 G 中已经有超过 K 个小于 x 的整数约数个数多于 x,即 x 一定不是良好的, 则 xp^c (c ≥ 0) 也一定不可能是良好的. 于是我们可以利用已知的良好的数筛出接下来“可能良好”…
题解 \(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_{…
简单的区间 $update$ 终于$AC$了 找到$(sum[r]+sum[l](sum表示以中间点为基准的sum)-mx)\%k==0$的点 注意这里$sum$表示是以$mid$为基准点,(即$sum[l]$为后缀和,$sum[r]$为前缀和) 回忆$(sum[r]-sum[l])\%k==0$这个经典问题做法(入阵曲简化版),开桶,桶里维护$sum[l]\%k$,那么$r$贡献就是桶里$sum[r]\%k$个数 于是这个题开桶维护$sum$,问题转化为求$max$即可 记录$max$位置是否…
T1:工业题 基本思路   这题有一个重要的小转化: 我们将原来的函数看作一个矩阵,\(f(i,j-1)*a\)相当于从\(j-1\)向右走一步并贡献a,\(f(i-1,j)*b\)相当于从\(i-1\)向下走一步并贡献b   那么问题就转化成了求从第\(0\)行与第\(0\)列的所有点走到点\((m,n)\)的所有方案数的总贡献   在一个点,对于他之前的点的所有走法,他都有可能向下或右走并带来贡献,所以是统计所有方案数.   易知从点\((i,j)\)到点\((m,n)\)的走的步数是\(m…
T1:神炎皇   又是数学题,气死,根本不会.   首先考虑式子\(a+b=ab\),我们取\(a\)与\(b\)的\(gcd\):\(d\),那么式子就可以改写成: \[(a'+b')*d=a'b'd^{2} \] \[a'+b'=a'b'd \]   现在,有\(a'\)与\(b'\)互质,那么\(a'+b'\)一定不是\(a'b'\)的因子,这很显然,就不证了,那么\(a'+b'\)一定整除\(d\). \(\because\)\(a+b\)小于等于\(n\),且\(a'+b'\)小于或等…
T1:Star Way To Heaven 基本思路:   最小生成树.   假如我们将上边界与下边界看作一个点,然后从上边界经过星星向下边界连边,会发现,他会形成一条线将整个矩形分为左右两个部分.   并且很明显从左边界走到右边界一定会经过这条线的某一部分.   为了与星星和上下边界尽可能远,我们直接走两点连边的中点,这应该很好理解.   他要求最小距离,所以我们可以跑最小生成树.   然后在最小生成树的边里拣大的输出他的\(1/2\)即可.   我们将所有星星连边,并与上下边界连边,与上下边…
T1:队长快跑 基本思路:   离散化·DP·数据结构优化DP   这三个我都没想到....气死.   定义状态数组:\(c[i][j]\)表示在i时最小的a值是j时可以摧毁的最多的水晶数.   那么状态转移方程就是: c[i][j]=max(c[i-1][a[i]+1],c[i-1][a[i]+2],......,c[i-1][maxn])+1,if(a[i]>b[i]),这时还要同时更新c[i-1][j](j\(\in(b[i],a[i]]\)) c[i][j]=max(c[i-1][b[i…