LOJ 10203「一本通 6.3 例 1」反素数 Antiprime 题目链接 ##题解 把\(n\)质因数分解一下,即\(n=\prod p-i^{k-i}\) 关于反素数的两个结论: 1. 如果两个数约数个数相同,那么更大的数不可能是反素数。 2. 我们枚举每个\(k-i\),\(k-i\)一定是单调不增的。因为如果某个不满足条件的数是反素数,那么将\(k\)调整为单调不增的形式,得到一个比它小的数且约数个数相同,与题设矛盾。所以\(k-i\)一定是单调不增 2020-09-01 题解 #数学 #唯一分解定理 #DFS
LOJ 2279「SCOI2007」降雨量 早就听闻过 BZOJ 上这道题的神贴了,虽然 BZOJ 现在没了... 显然就是线段树来维护一下区间最值,修改都不需要。 但是... 细节一车,对着下的两个样例检查才找到没考虑到的问题。 主要注意一下询问的\(x\),\(y\)数据没有给出的情况就可以了。 思维难度不大,主要是细节 12345678910111213141516171819202122232425262728293031323 2020-08-31 题解 #线段树
LOJ 3282 「JOISC 2020 Day4」治疗计划 题目链接 两个计划的治疗区间\([l-i,r-i]\), \([l-j,r-j]\)可以合并,当且仅当\([r-i-l-j+1\geq \left |T-i-T-j\right |]\) 按照区间顺序,可以有\(\mathjaxcal{O}(m^2)\)的暴力 dp , 每次选出一个最小的去合并其他区间。 12345678910111213141516171819202122232425262 2020-08-31 题解
LOJ 124 & 125 除数函数求和 除数函数求和1 题目 \(\sigma-k(n)=\sum_{d\mid n}d^k\) 求\(\sum_{i=1}^{n}\sigma-k(i)\)的值对\(1e9+7\)取模的结果。 ### 题解 直接枚举约数 \(\sum\limits_{d=1}^{n}d^k\sum\limits_{i=1}^{n}[d\mid i]\) \(\sum\limits_{d=1}^{n}d^k\left\l 2020-08-31 题解 #数论
LOJ 528「LibreOJ β Round ##题目 \[\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\mu ^2(\gcd (i,j))\bmod 998244353\] ##题解 以下默认\(n\leq m\) \[ \begin{equation} \begin{aligned} &\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\mu ^2(\gcd 2020-08-30 题解 #莫比乌斯反演 #数论分块
莫比乌斯反演常用结论 内容主要来自oi-wiki ##前置知识 \[ \forall a,b,c\in\mathjaxbb{Z},\left\lfloor\frac{a}{bc}\right\rfloor=\left\lfloor\frac{\left\lfloor\frac{a}{b}\right\rfloor}{c}\right\rfloor \] 数论分块的过程大概如下:考虑含有 \(\left\lfloor\f 2020-08-30 模板 #莫比乌斯反演
P6672 你的生命已如风中残烛 我的生命已如风中残烛... 思维好题 问题等价于\(m\)个数和为0, 求所有前缀和都不小于零的排列的个数. 将所有权值 \(-1\) 就可以了. 可以在最后添加一个\(-1\), 这样就是求前\(m\)个大于, 把排列连成环, 这样就有一个很好的性质, 每个圆排列只有一种断开的方法. 这个画个图比较好理解, 假设当前已经是合法的方案, 左右移动一下再断开都是不合法的. 圆排列的排列数是\(m!\ 2020-08-30 题解 #组合数学
P6327 区间加区间sin和 luogu: P6372 区间加区间sin和 线段树上只维护\(sin\)和是很难更新的,想到和角公式,维护\(cos\)的和。 \[sin(x+y)=sin(x)*cos(y)+cos(x)*sin(y)\] \[cos(x+y)=cos(x)*cos(y)-sin(x)*sin(y)\] 这道题卡常,所以要尽量减少\(sin\)和\(cos\)的运算。 注意一下懒标记用\(long long\ 2020-08-30 题解 #线段树 #和角公式
LOJ 2143「SHOI2017」组合数问题 题目链接:LOJ 2143 好像是循环矩阵一样的东西。 今天早上才做过一道用矩阵的[题目][https://www.luogu.com.cn/problem/P2886] 按照题目去算显然是会超时的, 可以按\(\bmod k\)的余数分类。 设\(f[i][j]\)表示从\(i\)个数中选若干个数,余数为\(j\)的方案数。 转移是\(f[i][j]=f[i][j]+f[x][j-1]*f[y] 2020-08-29 题解 #矩阵乘法
Old Driver Tree「珂朵莉树」 感觉这东西也不算是数据结构... 模板题见CF896C 随机数据的复杂度证明见知乎专栏 虽然构造数据只能拿来骗分,有时候作为辅助工具是比较方便的。 只用讲基本的操作。 大概是把相同的元素合并成一个块以减少时间复杂度。 块信息 12345678910111213141516171819202122struct Node-t { int l, r; mutable int v 2020-08-29 模板 #珂朵莉树