摘要:
求$n$个矩形的面积并,可以用线段树维护一条垂直于$y$轴的直线上被矩形覆盖的长度有多少长,将直线从左往右扫一遍,遇到矩形左边界就+1,遇到右边界就 1,不为$0$的位置就表示没有覆盖 不为$0$的位置的多少似乎不好维护, 考虑这样一个性质: 如果一个线段树上的区间在扫过一个矩形的左边界被全部覆盖, 阅读全文
摘要:
"链接" 对于每个状态$f[j]$多记录一个维度,转移的时候利用类似于归并排序的方法合并,以保证时间复杂度可以承受 注意事项:前$K$大可以有重复的价值 cpp include include include using namespace std; const int MAXK=55; const 阅读全文
摘要:
"题目链接" 按顺序对于每个座位找一个最近的同时编号最小的牛就行了 cpp include include include define int long long using namespace std; const int MAXN=1010; const int INF=1e18; int n 阅读全文
摘要:
"题目描述" 最大化平均值 二分一个$x$ $check$: $\frac{F+\sum_{i=1}^{n} X_{i} \times F_{i}}{M+\sum_{i=1}^{n} X_{i} \times M_{i}}\geq x$ $F+\sum_{i=1}^{n} X_{i} \times 阅读全文
摘要:
"题目链接" 先把$1$作为根求每个子树的$size$,算出把$1$作为集会点的代价,不难发现把集会点移动到$u$的儿子$v$上后的代价为原代价 $v$的$size$\ 边权+(总的$size$ $v$的$size$)\ 边权 cpp include include include define i 阅读全文
摘要:
"题目链接" 二分答案,判断需要断几条边,用$f[i]$表示以$i$为根的子树断边后的最长路径,对于一个点$u$,存在$f[v] mid$时就删到$v$的边$f[v1]+f[v2] mid$时就删$f$较大的边,可以sort之后搞一搞 阅读全文
摘要:
"数的变换" 暴力算就是了 "用来作弊的药水" 暴力计算,对几个MOD取模hash判断 阅读全文
摘要:
快速阶乘与(扩展)卢卡斯定理 $p$为质数时 考虑 $n!~mod~p$ 的性质 当$n p$时,不妨将$n!$中的因子$p$提出来 $n!$ 可以写成 $a p^e$ , $a$与$p$互质 如何求解$a$和$e$? 显然,$e=n/p+n/p^2+n/p^3+……$ 因为$1$~$n$有$n/p 阅读全文
摘要:
"题目链接" 欧拉定理: 当$a$,$m$互质时,$a^{\phi(m)}\equiv 1 (mod ~ m)$ 扩展欧拉定理: 当$B \phi(m)$时,$a^B\equiv a^{B~mod~\phi(m)+\phi(m)}$ cpp include include include inclu 阅读全文
摘要:
"题目链接" 考虑将所有的$a_1x_1+a_2x_2+……+a_nx_n=B$对$a_1$取模,那么所有可达到的B就分为了$0$~$a_1 1$类 如果对$a_1$取模为$k$的一类$B$中最小的$B$为$dis[k]$,那么$dis[k]+a_1,dis[k]+a_1 2,……$都是可以取到的, 阅读全文