EM LGH

It's Time to Make History
私信 关注
EM-LGH
码龄4年
  • 83,412
    被访问量
  • 1,496
    原创文章
  • 29,664
    作者排名
  • 12
    粉丝数量
  • 于 2017-07-16 加入CSDN
获得成就
  • 获得4次点赞
  • 内容获得18次评论
  • 获得12次收藏
荣誉勋章
TA的专栏
  • 做题记录
    1篇
  • 恶心题
    2篇
  • 交互题
    1篇
  • 思维题
    27篇
  • Splay
    8篇
  • Treap
    1篇
  • 线段树
    7篇
  • 权值线段树
    1篇
  • 分治线段树
    1篇
  • 可持久化线段树
    6篇
  • 树状数组
    8篇
  • 启发式合并
    1篇
  • 主席树
    9篇
  • 莫队
    1篇
  • 树套树
    2篇
  • 分块
    4篇
  • 并查集
    1篇
  • 队列
    1篇
  • 栈
    1篇
  • KMP
    1篇
  • AC自动机
    4篇
  • 贪心
    3篇
  • 倍增
    6篇
  • 搜索
    9篇
  • 记忆化搜索
    2篇
  • 离线
    1篇
  • 逆推
    2篇
  • 枚举
    1篇
  • 差分
    1篇
  • 二分答案
    3篇
  • 算法 中途相遇法
    1篇
  • 算法 构造
    9篇
  • 算法 双指针法
    1篇
  • 算法 模拟
    7篇
  • 算法 打表找规律
    1篇
  • 动态规划 复杂计数
    2篇
  • 动态规划 状态压缩
    8篇
  • 动态规划 树形动规
  • 动态规划 优化
    2篇
  • 动态规划 背包问题
    1篇
  • 动态规划 斜率优化
    2篇
  • 动态规划 单调队列
    1篇
  • 动态规划 概率与期望
    4篇
  • 动态规划 背包问题
    1篇
  • 动态规划 简单
    3篇
  • 树 dfs序
    3篇
  • 树 LCA
    4篇
  • 树 树链剖分
    3篇
  • 树 基环树
    1篇
  • 树上问题
    3篇
  • 树 最小生成树
    2篇
  • 数学 概率与期望
    5篇
  • 扩展欧几里得
    1篇
  • 组合数
    2篇
  • 线性筛
    2篇
  • 卢卡斯
    1篇
  • 容斥原理
    2篇
  • 欧拉函数
    3篇
  • 快速幂
    1篇
  • 逆元
    1篇
  • 矩阵乘法
    1篇
  • 强联通分量
    4篇
  • 网络最大流
  • 上下界网络流
    1篇
  • 差分约束
    3篇
  • 2-SAT
    1篇
  • 最短路
    2篇
  • 拓扑排序
    1篇
  • 扫描线
    1篇
  • bitset
    1篇
  • 数形结合
    1篇
  • 随机数据生成与对拍
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

CF1398G Running Competition FFT

求最大的 $2(a_{i}-a_{j}+y)|L$. 其中 $a_{i}-a_{j}$ 只可能有 $x$ 种结果.这个显然可以用 FFT 来算可行性. 然后调和级数更新就可以了. FFT 中复数的运算什么的要注意一下,不要写错. 单位根是 $(cos(\frac{pi}{l}),i*sin(\frac{pi}{l}))$ 代码:#i...
原创
138阅读
0评论
0点赞
发布博客于 8 月前

Luogu「StOI-2」简单的树 树链剖分+线段树+倍增

考场的时候智障了,写了 6k+ 的树链剖分. 如果题目带修改的话可以用树链剖分来维护,但由于没有修改用一个前缀和其实就够了.求 $\sum_{i=l}^{r} f(a,i)$ 可以写成两个前缀相减的形式.然后我们就要求 $\sum_{i=0}^{r} f(a,i)$. 求这个的话用倍增讨论 $a$ 的初始值的影响范围,因为在影响范围内刚开始都是由子树中次大值来贡...
原创
45阅读
0评论
0点赞
发布博客于 8 月前

LOJ#3145. 「APIO2019」桥梁 分块+可撤销并查集

看到这道题时没有什么思路,只会打暴力,而且数据范围比较有迷惑性,那基本就是分块了. 现在有两个暴力: 1.每次 $O(1)$ 更新边权,然后 $O(m)$ 暴力查询一个点的答案.2.每次将所有边排序,然后 $O(1)/O(\log n)$ 查询点权 上述两种做法中查询与更新的时间复杂度很不平衡,所以考虑对操作进行分块来维持平衡. 令每一个块的大小为 $B$,将 $B$ 中所有...
原创
35阅读
0评论
0点赞
发布博客于 8 月前

【UNR #4】序列妙妙值 分块+DP

只会 80pts.最裸的暴力(40pts) 令 $f[i][j]$ 表示当前 DP 到 $i$,划分成了 $j$ 段的最小值.时间复杂度 $O(n^2)$ 一点优化(60 ~ 80pts)有几个测点 $a[i]$ 很小,那么可以直接开一个桶 $s[i][j]$ 表示前缀异或和为 $i$,且划分 $j$ 段的最小值. 修改复杂度:$O(1)$,查询复杂度 ...
原创
65阅读
0评论
0点赞
发布博客于 8 月前

LuoguP5008 [yLOI2018] 锦鲤抄 tarjan+贪心

首先,如果是一个 DAG 的话入度不为 0 的点肯定可以都选. 然后如果是一般图的话我们缩点,考虑对于一个强连通分量如何处理:如果该强连通分量入度为 0 ,那么一定有一个点不能选,其他点都能选.如果该强连通分量入读不为 0,那么肯定所有点都可以选. 由于缩完点后是一个 DAG 的形式,我们一定可以按照拓扑序从后往前来选. 这样就可以在上述两个限制下...
原创
37阅读
0评论
0点赞
发布博客于 8 月前

LuoguP1654 OSU! 概率与期望

感觉数学期望这里始终都没太学明白. 期望在任何时候都具有线性性,即 $E(a+b)=E(a)+E(b)$,这个式子任何时候都成立. 先考虑求 $x$,$x^2$. 令 $x1[i]$ 表示 $i$ 为 $1$ 向前的极长 $1$ 的期望长度,$x2[i],x3[i]$ 为 $x^2,x^3$ 的期望.那么考虑从 $i-1$ 那里转移过来,就是 $E(j+1)=E(j)+E(1)=E...
原创
26阅读
0评论
0点赞
发布博客于 8 月前

Comet OJ - Contest #8 神奇函数 莫比乌斯反演+欧拉函数

令 $x=\prod p_{i}^{a_{i}}$ 则 $f(x)=\prod p_{i}^{\frac{a_{i}}{2}}$ 也就是说 $f(x)$ 等于最大的 $y$ 满足 $y^2|f(x)$ $\sum_{i=1}^{n} f(i)$ 可化为 $\sum_{i=1}^{ \sqrt{n}} i \times g(\frac{n}{i^2})$ 其中 $g...
原创
25阅读
0评论
0点赞
发布博客于 8 月前

LOJ#2719. 「NOI2018」冒泡排序 DP+组合+树状数组

神仙题. 代码:#include <cstdio>#include <vector>#include <cstring>#include <algorithm> #define N 2000004 #define ll long long #define mod 998244353#define setIO(...
原创
33阅读
0评论
0点赞
发布博客于 8 月前

LuoguP6747 『MdOI R3』Teleport 二进制+贪心

令 $f[i]$ 表示考虑第 $1$ ~ $i$ 位的最小代价.由于要求最大化 $k$,所以从高位向低位贪心. 判断的话就判一下当前二进制位选 1 的代价加上 $f[i-1]$ 是否小于等于 m. 如果可以选就贪心选 1.这道题比较容易爆精度,long long 可能会乘爆,所以判一下两个 long long 相乘是否为负数. 代码:#include ...
原创
68阅读
0评论
0点赞
发布博客于 8 月前

LuoguP6748 『MdOI R3』Fallen Lord 树形DP+set

首先,肯定没有不合法情况(每条边的权值都赋值为 $1$ 就一定合法) 然后对于一条边 $(x,y)$ 来说,只可能有 3 种取值.1. 取 $a[x]$2. 取 $a[y]$3. 取 $m$ 然后转化成这一步后就可以进行树形 DP 了.令 $f[x][0],f[x][1]$ 分别表示以 $x$ 为根的子树,且 $x$ 与 $x$ 父亲连边的边权小于等于 ...
原创
49阅读
0评论
0点赞
发布博客于 8 月前

LuoguP5576 [CmdOI2019]口头禅 后缀树+线段树+暴力

一个比较暴力的解法.先对所有串建出广义后缀自动机提取出后缀树然后按照询问的右端点离线. 考虑插入第 $i$ 个串,那么会被 $i$ 及 $i$ 的祖先遍历到的点的表示范围会从 $[l,r] \rightarrow [l,r+1]$. 未被遍历到的点的表示范围出现了一个“断点”,则表示范围就是 $i$ 之后最近的串 $j$,$[j,j]$. 将串在自动机上匹配的复...
原创
39阅读
0评论
0点赞
发布博客于 8 月前

LOJ#3161. 「NOI2019」I 君的探险 整体二分+随机化+二进制分组

比较神仙的随机化+交互题. 测试点 $1$ ~ $5$ : 限制条件不强,可以直接点亮一条边中编号小的点 $x$,然后再枚举编号大于 $x$ 的点.操作次数:$O(n)$查询次数:$O(n^2)$ 测试点 $6$ ~ $9$:图的形态是点两两匹配. 这里有两种做法:1. 随机化 假设当前要分点集 $A$ 中的点,那...
原创
37阅读
0评论
0点赞
发布博客于 8 月前

LOJ#2085. 「NOI2016」循环之美 莫比乌斯反演+杜教筛

求:$\sum_{i=1}^{n} \sum_{j=1}^{m} [(i,j)=1][(j,k)=1]$这个时候可以拆前面的,也可以拆后面的.由于后面的 $k$ 是一个定值,考虑拆解后面的部分.得:$\sum_{d|k} \mu(d) \sum_{i=1}^{n} \sum_{j=1}^{\frac{m}{d}} [(i,jd)=1]$$\Rightarrow \sum_{d|k...
原创
44阅读
0评论
0点赞
发布博客于 8 月前

LuoguP5327 [ZJOI2019]语言 线段树合并+树链求并

比较好的一道数据结构题. 对于 $i$,我们希望求出所有经过 $i$ 号点的路径所构成的树链之并. 考虑一个求解树链的并的经典做法就是 $\sum_{i=1}^{n} dep[i]-\sum_{i=2}^{n} dep[LCA(i,i-1)]$. 这里要求所有点都要按照 $dfs$ 序排好.那么这道题中我们就基于 DFS 序对每个点建立动态开点线段树. ...
原创
43阅读
0评论
0点赞
发布博客于 8 月前

【考试题 - sequence】DP

没有测试数据,但是和正解对拍了 400 多组数据都过了. 手画一下发现每个数如果变化的话只有 3 种情况:$-1,0,1$. 感性理解的话一个数变小的话对前面更优,对后面更劣. 但是我们发现不可能存在一个数使得该数变小后会导致后面的数也变小.这是因为如果该数变小的话说明该数和前缀最小值已经构成 $max$,而如果后面的数大于当前数的话显然只需要分析前缀最小...
原创
59阅读
0评论
0点赞
发布博客于 8 月前

LOJ#3124. 「CTS2019 | CTSC2019」氪金手游 容斥+DP

神仙容斥+DP可还行.code:#include <cstdio> #include <cmath> #include <vector>#include <cstring>#include <algorithm> #define N 1007 #define ll long long #d...
原创
37阅读
0评论
0点赞
发布博客于 8 月前

LOJ#2569. 「APIO2016」最大差分 分块+交互

比较有趣的交互题. subtask1: 由于每次调用这个函数可以返回值域中的最大值和最小值,所以可以每次查询出两个元素. 那么每次查到 $x,y$ 后就将查询区间缩小为 $[x+1,y-1]$,这样可以在规定操作次数内解决问题. subtask2: 这个 subtask 比较困难.首先,我们发现答案的下界是 $B=\frac{Max-Min}{n-...
原创
39阅读
0评论
0点赞
发布博客于 8 月前

LOJ#2567. 「APIO2016」划艇 离散化+DP

运用到了 NOI2019 机器人那道题的技巧. 考虑对区间进行离散化,然后设当前枚举到的两个端点为 $[l,r]$.先处理 $[l,r)$,会遇到 $\sum_{i=1}^{n} \binom{len}{i} \binom{k}{i}$ 这个式子.这个式子可以直接 $O(1)$ 组合数算,但是我比较懒用 $O(n^2)$ 递推算的(反正不影响总复杂度) 处...
原创
53阅读
0评论
0点赞
发布博客于 8 月前

LOJ#3157. 「NOI2019」机器人 DP+拉格朗日插值

NOI2019 两道插值可还行. 一个数不可能向右移动到超过后缀最大值的位置,也不可能向前移到前缀最大值之前的位置.那么就考虑基于最大值的分治(DP) 令 $f[l][r][x]$ 表示当前区间为 $[l,r]$ 最大值为 $x$ 的方案数. 然后转移的话枚举 $k$ 为最大值出现的位置(有多个的话则是最后出现的位置). 那么就将问题分成两个子问题了,时间...
原创
43阅读
0评论
0点赞
发布博客于 8 月前

BZOJ4832 [Lydsy2017年4月月赛]抵制克苏恩 记忆化搜索

概率DP+记忆化搜索.直接记忆化搜索感觉比较显然+简单.直接设状态 $f[x][a][b][c]$ 表示还剩 $x$ 轮,当前牌的状态为 $(a,b,c)$ 还期望造成的伤害.转移的话就是倒着转移:$f[x][a][b][c] \leftarrow f[x-1][.....]$. 然后边界的话将 $f[1][.....]$ 直接设为此时造成伤害的期望. ...
原创
26阅读
0评论
0点赞
发布博客于 8 月前

LOJ#3271. 「JOISC 2020 Day1」建筑装饰 4 DP+找规律

有一个非常显然的 DP: $f_{i,j,0/1}$ 表示当前 $DP$ 到 $i$,选了 $j$ 个 A,当前位置选的是 A/B 是否可行.状态数为 $O(n^2)$,转移为 $O(1)$,时间复杂度为 $O(n^2)$. 这个时候就要动用人类智慧:打表. 打表后发现当 $i,0/1$ 固定的时候 $j$ 的合法状态是一个连续段.所以对于 $f_{i,0/...
原创
39阅读
0评论
0点赞
发布博客于 8 月前

LOJ#3160. 「NOI2019」斗主地 打表+拉格朗日插值

裸做的话设一个 $p[i][j]$ 表示两个堆分别抽走 $i,j$ 个的概率. 转移的话就枚举当前是第几个,然后再枚举左/右面由下向上第几个贡献. 不在模意义下做,开 double 打表发现无论怎样洗牌,一次函数还是一次函数,二次函数还是二次函数. 那么我们只需暴力维护出牌的前 3 项,然后后面的项用拉格朗日插值求出即可.code:#include &...
原创
33阅读
0评论
0点赞
发布博客于 8 月前

CF1386C Joker 双指针+动态树

双指针+LCT. 在二分图那道题中,有一种用 LCT 维护奇环的方法. 该题的做法和那道题相似. 对于 $i$,维护 $left[i]$ 表示当删除 $i$ 时最靠左的端点使得删掉 $[left[i]+1,i]$ 后仍然存在奇环. 那么最后判断答案的时候就看 $(l,r)$ 中的 $l$ 是否大于 $left[r]$ 即可. 由于删掉...
原创
39阅读
0评论
0点赞
发布博客于 8 月前

LuoguP2605 [ZJOI2010]基站选址 线段树优化DP

比较好的一道题 DP 题. 令 $f[i][j]$ 表示覆盖前 $i$ 个基站且 $i$ 位置上维修了基站的最小代价. 注意:上面设的状态是不考虑 $[i+1,n]$ 的. 转移的话 $f[i][j] \leftarrow f[k][j-1]+calc(j-1,i)$. 其中 $calc(i,j)$ 表示 $i$ 和 $j$ 分别修了基站的情况下 $i,j...
原创
31阅读
0评论
0点赞
发布博客于 8 月前

LuoguP6694 强迫症 找规律+NTT

比赛的时候切的,可惜没抢到首 A.权值和等于 $\sum_{i=1}^{n} \sum_{j=i+1}^{n} a_{i} \times a_{j} \times f(j-i+1) \times f(n-j+i+2)$,最后再除以 4.然后这里的 $f(n)$ 就代表 $n$ 个点构成的圆环的不相交生成子图的方案数.可以将前 $5$ 项打表打出来,上 $OEIS$ 找到通项公式...
原创
30阅读
0评论
0点赞
发布博客于 8 月前

【考试题 - txdy】 枚举+DP

题意:给定一个字符串,求有多少个子序列满足该子序列长度为 $7$,且位置所对应字母在子序列中排名为 3652415. 观察发现如果枚举 $3,5,2$ 上的字母的话其他字母插入方式只有 1 种,即不会引起冲突. 然后就令 $f[x][i]$ 表示 DP 到 $i$ 位置,匹配了子序列第 $x$ 位置的方案数,转移方式只有 1 种.严格来说,这个的复杂度是 $O(26^3...
原创
36阅读
0评论
0点赞
发布博客于 8 月前

【考试题 - 排列】 分治+树形DP

题意:求有多少种排列满足 $i$ 之前第一个小于 $i$ 的位置是 $q[i]$.如果没有 $q[i]$ 的限制,答案就是全排列,然后 $q[i]$ 会限制一些元素之间的大小关系.直接做的话没办法方便地求出元素之间的大小关系. 不妨思考单调栈的过程:如果遇到前缀最小值的话肯定会将栈清空.那么也就是说如果最小值 $i$ 将序列分为 $L,R$,则 $L,R$ 之间相互...
原创
30阅读
0评论
0点赞
发布博客于 8 月前

LOJ#3058. 「HNOI2019」白兔之舞 单位根反演+矩阵乘法+MTT

毒瘤多项式. 找原根+矩阵乘法+拆系数FFT大杂烩. code:#include <vector>#include <cmath>#include <cstdio> #include <cstring>#include <algorithm> #define N 100009 #defin...
原创
27阅读
0评论
0点赞
发布博客于 8 月前

LOJ#3087. 「GXOI / GZOI2019」旅行者 二进制分组+Dijkstra

通过这道题了解二进制分组. 由于我们只需要求两两之间最短路的值而不需要求具体是哪两个点得到的最短路,可以使用二进制分组. 因为如果两个点对答案有贡献,那么这两个点一定在某个二进制位上不同,而 dijkstra 可以方便地求两个集合之间的最短路. 然后注意对于两个方向要分别跑一个 dijkstra. 总时间复杂度为 $O( (n+m) \log (n...
原创
24阅读
0评论
0点赞
发布博客于 8 月前

LOJ#2302. 「NOI2017」整数 线段树+压位

裸做的话是 $O(n \log^2 n)$ 的,即将 $a$ 进行二进制拆分,然后暴力更新. 考虑进行压位,即线段树的每一个叶节点维护长度为 $30$ 的状态. 加法操作如果需要进位的话就找到其后面的块中第一个 0 所在位置. 减法操作如果需要借位的话就找第一个 1. 第一个 0 与第一个 1 都可以用线段树维护,即 $f0,f1$ 分别表示前缀 0/1 的...
原创
30阅读
0评论
0点赞
发布博客于 8 月前

UOJ#523. 【美团杯2020】半前缀计数 后缀自动机

比较好的一道后缀自动机题. 先枚举必选的前缀 $[1,k]$ 然后加上 $[k+1,n]$ 中本质不同子串个数. 但是这样的话会算重.考虑哪些地方算多了: 假设 $i-1$ 的前缀为 $pre[i-1]$,然后当前的前缀为 $pre[i-1]+x$.那么当前肯定会枚举到 $pre[i-1]+(x.....)$,而这一部分在 $pre[i-1]$ ...
原创
35阅读
0评论
0点赞
发布博客于 8 月前

LuoguP6688 可重集 线段树+hash

线段树加 hash 判重模板题.hash 的话必须要用双 base 哈希,否则会 WA. 然后这道题中最好不要用自然溢出,感觉比取模还要慢一些. 由于读入量巨大,必须要开读入优化才能过. 哈希的方式就是对于每个数维护 $\sum base^{num[i]}$,由于值域不大,提前预处理出来 base 的 num 次方即可. code:#inclu...
原创
44阅读
0评论
0点赞
发布博客于 9 月前

LuoguP6687 论如何玩转 Excel 表格 树状数组

找规律+猜结论. 不难发现这个旋转 180 度其实是对于一个 $2 \times 2$ 的正方形内部对角线分别交换. 所以对于这个 $2 \times n$ 的数组来说可以将所有格子分成两类,这两类互不干扰. 那么判断是否合法的条件之一就是初态和末态对应种类的格子应该相同. 即 $(1,1)$,$(2,2)$,$(3,1)$,$(4,2)$ 与 $(1,...
原创
57阅读
0评论
0点赞
发布博客于 9 月前

LOJ#2303. 「NOI2017」蚯蚓排队 hash+链表

正常来说,单次操作的复杂度是 $O(k^2)$,然后整体复杂度是 $O(nk^2)$. 但是我们发现每次合并两个蚯蚓的复杂度的极限是 $O( min(size_{min},50) \times 50)$.然后根据启发式合并的复杂度分析,即使要求遍历完 $size_{min}$,复杂度最高也就是 $O(n \log n k)$. 这个的极限也就是 $O(10^8)$ 左右,...
原创
27阅读
0评论
0点赞
发布博客于 9 月前

LOJ#6289. 花朵 树链剖分+分治NTT

本来以为这道题会非常难调,但是没想到调了不到 5 分钟就 A 了.由于基于多项式的运算都可以方便地进行封装,所以细节就不是很多(或者说几乎没有细节) 题意:给定一棵树,每个点有点权,求对于所有大小为 $m$ 的独立集的点权之积的和. 数据范围:$n,m \leqslant 8 \times 10^4$.先考虑一个十分显然的 $O(n^2)$ 暴力:令 $f[...
原创
38阅读
1评论
0点赞
发布博客于 9 月前

LOJ#2541. 「PKUWC2018」猎人杀 容斥+分治NTT

真——分治NTT code:#include <cstdio> #include <vector>#include <cstring>#include <algorithm> #define N 100009#define ll long long #define mod 998244353#def...
原创
29阅读
0评论
0点赞
发布博客于 9 月前

LuoguP4931 [MtOI2018]情侣?给我烧了!(加强版) 组合

不妨枚举哪些位置和睦,然后计算其他位置都不和睦的方案数. 令 $f[i]$ 表示 $i$ 对情侣都不和睦的方案数.然后 $f[i]$ 的转移和错位排列比较相似,即让情侣 $(i,i')$ 与 $(x,y)$ 合并或者 $(x,x')$ 合并.前者对应 $f[i-2] \times 2 \times (i-1)^2 \times i$,后者对应 $f[i-1] \times...
原创
43阅读
0评论
0点赞
发布博客于 9 月前

LOJ#2540. 「PKUWC2018」随机算法 状压DP+组合

令 $f[S]$ 表示所选的排列可以生成出 $S$ 的最大独立集且点集 $S$ 全部在序列中的方案数. 那么我们选一个没有被覆盖的点 $j$,令 $sta[j]$ 表示 $j$ 及 $j$ 覆盖的点集. 那么有 $f[S|sta[j]] \leftarrow f[S] \times A(n-|S|-1,|sta[j]|-|sta[j] \bigcap S|)$ ...
原创
33阅读
0评论
0点赞
发布博客于 9 月前

LOJ#3302. 「联合省选 2020 A | B」信号传递 状压DP+卡常

对于 $x,y$ 如果 $x$ 在 $y$ 的左面那么 $x \rightarrow y$ 的贡献是 $pos[y]-pos[x]$$y \rightarrow x$ 的贡献是 $pos[x] \times k+pos[y] \times k.$令 $f[S]$ 表示集合 $S$ 在序列开头,且考虑所有贡献的情况下的最小值. 那么转移 $f[S]$ 是十分简单的,但是我...
原创
44阅读
0评论
0点赞
发布博客于 9 月前

LOJ#3120. 珍珠 容斥+生成函数+NTT

神仙多项式可还行. code:#include <cstdio> #include <vector>#include <cstring>#include <algorithm> #define N 100009 #define ll long long #define mod 998244353#def...
原创
30阅读
0评论
0点赞
发布博客于 9 月前

LOJ#575. 「LibreOJ NOI Round #2」不等关系 容斥+分治NTT

容斥+分治NTT. 令 $dp[i]$ 表示以 $i$ 结尾的方案数.如果只有小于号的话 $dp[i]$ 是非常好求的:$\frac{n!}{\prod a_{i}}$ 即总阶乘除以每一个小于号连续段. 有大于号的时候考虑容斥: 遇到第一个大于号的时候先不考虑当前位置关系,方案数就是 $dp[j] \times \binom{i}{i-j}$. 那么我们...
原创
42阅读
0评论
0点赞
发布博客于 9 月前

51nod1514 美妙的序列 分治NTT

显然,不合法的情况要存在序列被分成值域为 $[1,i]$ 与 $[i+1,r]$ 两部分.不妨采用容斥的方法来减去所有不合法的情况. 令 $f[i]$ 表示 $1$ ~ $i$ 构成的合法序列数目.那么不合法的情况一定可以表示为 $f[j] \times (i-j)!$ 即前 $j$ 个数组成的连通块合法,然后第一个不合法位点为 $(j,j+1)$由于每一次第一...
原创
20阅读
0评论
0点赞
发布博客于 9 月前

LuoguP5349 幂 分治NTT

比较神仙的推导. 求 $\sum_{n=0}^{ \infty }s(n)r^n$,其中 $s(x)$ 是一个 $m$ 次多项式,$0\leqslant r \leqslant 1$显然可以 $s(x)$ 每一个系数的贡献,那么就转化为:$\sum_{j=0}^{m} a_{j} \sum_{n=0}^{\infty} n^jr^n.$ 令 $f_{j}=\sum_...
原创
20阅读
0评论
0点赞
发布博客于 9 月前

复习

多项式多项式求逆公式 $B=2B'-AB'^2$ 这里注意复制 $A$ 数组的时候不要复制多了,否则会让前面的 B 多算. #include <cstdio>#include <vector>#include <cstring>#include <algorithm>#define N 100008 #...
原创
28阅读
0评论
0点赞
发布博客于 9 月前

LOJ#6261. 一个人的高三楼 组合+NTT

令 $f(i,j)$ 表示 $j$ 的 $i$ 阶前缀和.那么有 $f(i,j)=\sum_{j=1}^{i} f(i-1,j)$,这个可以直接多项式快速幂.时间复杂度是 $O(n \log^2 n)$ 或 $O(n \log n)$ ,但是常数大而且第二种不好写. 考虑计算每一个位置 $j \leqslant i$ 对 $i$ 位置的贡献.令 $p(i,j,...
原创
26阅读
0评论
0点赞
发布博客于 9 月前

LOJ#6247. 九个太阳 单位根反演

复习一下单位根反演:$[k|n]=\frac{1}{k} \sum_{i=0}^{k-1} w_{k}^{ni}$,即 $[n \% k=0]$ 最前面那个 $\frac{1}{k}$ 不要忘记,也不要写错!!!当 $n$ 很大,$k$ 不大的时候可以预处理出来 $w_{k}^{i}$ 然后后面可能会加上二项式定理. 这道题求的是 $\sum_{i=0}^{n} ...
原创
17阅读
0评论
0点赞
发布博客于 9 月前

LOJ#3300. 「联合省选 2020 A」组合数问题 第二类斯特林数

考场上忘了第二类斯特林数公式,过于智障,这里再重新推一遍.首先,$S(i,j)$ 表示的意义是将 $i$ 个不同的球放入 $j$ 个相同的盒子中的方案数,且盒子不能为空. 那么有 $S(i,j)=S(i-1,j-1)+S(i-1,j) \times j$ 分别表示新开一个盒子/放入之前的盒子. 然后很多题会有 $\sum i^x$ 这种式子,这里 $i$ ...
原创
43阅读
0评论
0点赞
发布博客于 9 月前

LOJ#6031. 「雅礼集训 2017 Day1」字符串 根号分治+SAM+倍增

怎么想都没想出来 $\log n$ 做法,那么这道题基本就是根号分治了. 题目描述中保证 $\sum k \leqslant 10^5$,然后 $k$ 在每次询问中又是相同的,那么就考虑对 $k$ 根号分治. 先对 $s$ 建立后缀自动机,然后把倍增数组求出来. 我们设块的大小为 $B$,那么当 $k \leqslant B$ 时可以对 $k$ 的每一个子串在 $...
原创
35阅读
0评论
0点赞
发布博客于 9 月前

LOJ#6198. 谢特 SAM+启发式合并+01trie

并不难的一道字符串题.显然后缀自动机上进行字典树的启发式合并.但是一定注意,题中要求的是两个后缀的 LCP 而不是两个前缀的 LCP.所以在构建后缀自动机的时候要从后向前构建.刚开始从前向后构建 WA 了半天.然后进行启发式合并的时候可以对每个节点维护一个 id[x],如果儿子的大小大于点 $x$ 大小就 swap 一下即可.code: #inc...
原创
28阅读
0评论
0点赞
发布博客于 9 月前

LuoguP4463 [集训队互测2012] calc DP+拉格朗日插值

这道题的题意不太明确. 应该是两个序列 $a,b$ 不同,当且仅当存在位置 $i$ 使得 $a[i]$ 不等于 $b[i]$.朴素的 DP 非常好列:$f[i][j]$ 表示选了 $i$ 个数,且值域为 $[1,j]$ 的总价值和. 那么有 $f[i][j]=f[i-1][j-1] \times j+f[i][j-1]$,直接算的话复杂度是 $O(nD)$ 的. ...
原创
23阅读
0评论
0点赞
发布博客于 9 月前

一些图的计数

DAG 计数1. 不要求联通可以枚举 DAG 中入度为 0 的点的数量,但是会算重.钦定入度为 0 的点的数量为 $i$ 时会将 $j$ 个入度为 0 的图算 $\binom{j}{i}$ 次. 由于我们算的是全集,容斥系数就是 $(-1)^{i-1}.$ 那么就有 :$f(n)=\sum_{i=1}^{n} (-1)^{i-1} \binom{n}{i} f(n-...
原创
24阅读
0评论
0点赞
发布博客于 9 月前

CF917D Stranger Trees 矩阵树定理+拉格朗日插值

先对完全图构建矩阵,然后将原树上的边 $(x,y)$ 在矩阵中的边权标记成 $x^1$,其余边权为 $1$.矩阵树定理求的是所有生成树边权乘积之和,那么要是可以对含 $x$ 的矩阵求行列式的话可以直接得出答案. 但是复杂度太高,而且难写(写不了) 所以用 $n$ 个不同的整数来替换那个 $x^1$,然后跑出来 $n$ 个结果,用拉格朗日插值还原出多项式的系数即可. ...
原创
36阅读
0评论
0点赞
发布博客于 9 月前

拉格朗日插值

公式:$f(x)=\sum_{i=1}^{n} y_{i} \prod_{i
eq j} \frac{x-x_{j}}{x_{i}-x_{j}}$. 这个式子正常算的话是 $O(n^2)$ 的,如果遇到 $x$ 是连续的情况可以优化到 $O(n \log n)$. 但是有些时候我们只知道 $f(x)$ 在 $x=k$ 时的点值是不够的,有时必须求出这个多项式每一位系数....
原创
35阅读
0评论
0点赞
发布博客于 9 月前

CF765F Souvenirs 主席树+复杂度分析

比较神仙的一道题. code:#include <vector> #include <cstdio>#include <cstring>#include <algorithm> #define N 300009 #define pb push_back#define ll long long #define ...
原创
28阅读
0评论
0点赞
发布博客于 9 月前

LOJ#2863. 「IOI2018」组合动作 交互

比较友好的一道交互题. 想出来还是蛮开心的. 对于第一个位置先猜 $A$ 和 $B$,然后有一个合法的话猜 $A$,否则去猜 $X$,$Y$ 其中的一个. 由于题目保证首次出现的数不会在中间再次出现,所以中间的数只有 3 种情况. 如果还是用猜首位的策略去猜中间的数的话可以在 $2n$ 次询问解决该问题,但是这并没有用到首字母不在中间出现这个性质...
原创
30阅读
0评论
0点赞
发布博客于 9 月前

LOJ#3175. 「IOI2019」排列鞋子 贪心+树状数组

手画一下发现最优策略是统一向左/向右移,那我们就让鞋子向左移. 因为一个鞋子向左移不会使右面的答案变差,而最左面没有被匹配的鞋子也迟早要和一个鞋子去匹配. 写了一个 $O(n^2)$ 的暴力,过掉了 50pts. 然后我们发现将鞋子从 $j$ 移到 $i$ 的代价是 $j-i-$ $[i,j]$ 中已经移到左面的个数. 维护 $[i,j]$ 中移到左面的个数可以用...
原创
34阅读
0评论
0点赞
发布博客于 9 月前

UOJ#26. 【IOI2014】Game 交互

算法一:贪心,如果删除点 $(x,y)$ 整个图仍然联通则删掉 $(x,y)$,否则保留. 想到这里了,但是不会维护两点连通性,看了题解后发现直接令 $c[i][j]$ 表示连通块 $(i,j)$ 之间删掉了多少条边. 如果 $c[i][j]+1=\frac { num[i] \times (num[j]-1) }{2}$ 则不能删掉连接 $(i,j)$ 的边,否则可以...
原创
29阅读
0评论
0点赞
发布博客于 9 月前

CF1009F Dominant Indices 长链剖分

这道题里需要用到指针. 这里讲一下指针的一些基本操作:首先,我们要分配一些内存,然后分配一个指针来指向这个内存:int pp[N],*p=pp,*f[N];这里指针的空间都会被分配到 pp 里. 假如说我们想给 $f[x]$ 分配一些内存,我们就令 $f[x]=p$,$p \leftarrow p+need[x]$. 指针是连续的,也就是说 $...
原创
27阅读
0评论
0点赞
发布博客于 9 月前

CF521E Cycling City DFS树+暴力

如果只要求判断有没有解的话很好做:以条树边被两条非树边覆盖即可. 输出方案的话可以考虑碰到一条非树边就暴力覆盖. 如果覆盖的过程中发现一条边已经被覆盖了就输出结果. 由于一条边只能被一种非树边覆盖,所以复杂度均摊下来是 $O(n)$ 的.然后我们就得到两条路径 $(a,b)$ 与 $(c,d)$,$dep[a] \leqslant dep[c]$ ...
原创
28阅读
0评论
0点赞
发布博客于 9 月前

UOJ#387. 【UNR #3】To Do Tree 贪心

刚开始想的贪心是先删掉儿子数量多的.但是如果一棵树有一条特别长的链的话这个贪心就假了. 换一种贪心思路:优先删掉子树深度大的. 这种贪心题的证明也不会了,感觉没啥反例就当正确了.以后做贪心题的时候还是要多手造几组数据,验证正确性. code:#include <bits/stdc++.h> #define N 10...
原创
27阅读
0评论
0点赞
发布博客于 9 月前

UOJ#388. 【UNR #3】配对树 树链剖分+线段树

这道题卡常啊 ! 出题人说 $O(n \log^2 n)$ 可过,但我写了个 $O(n \log^2 n)$ 的树剖卡了半天常数. 最暴力的做法:枚举区间,然后跑一个树形DP 来求最小匹配. 显然,因为要求匹配值最小,所以一定是能匹配就先匹配. 也就是说递归完 $x$ 的所有儿子后,$x$ 的每一个儿子最多只有 1 个点还没有匹配. ...
原创
28阅读
0评论
0点赞
发布博客于 9 月前

CF505E Mr. Kitayuta vs. Bamboos 二分+贪心

又是一个倒着处理的问题.2900 的神仙二分+贪心可还行...... code:#include <cstdio> #include <cstring> #include <queue> #define N 100009 #define ll long long #define setIO(s) freopen(s...
原创
53阅读
0评论
0点赞
发布博客于 9 月前

luoguP6018 [Ynoi2010]Fusion tree 01trie

今年省选考了这个技巧,感觉之前没做过类似的题的话现场挺难想出来的. 我们发现对 1 个数 +1 可以看作从低到高位的第一个 0 修改成 1,该 0 后面的 1 修改成 0. 将一个节点的所有儿子对应的数放到该节点对应的 01 trie 中进行修改的话就是将 0,1 翻转. 翻转后走 0 那边,然后递归地进行翻转就行. 然后...
原创
107阅读
0评论
0点赞
发布博客于 9 月前

LOJ#6130. 「2017 山东三轮集训 Day1」Fable 树状数组+逆序对

code: #include <set> #include <cstdio> #include <algorithm> #define N 200009 #define ll long long #define setIO(s) freopen(s".in","r",stdin) using namespace std; ...
原创
33阅读
0评论
0点赞
发布博客于 9 月前

CF908G New Year and Original Order 数位DP

数位 DP.code:#include <cstdio> #include <cstring>#include <algorithm> #define N 703 #define ll long long #define mod 1000000007#define setIO(s) freopen(s".in","r...
原创
40阅读
0评论
0点赞
发布博客于 9 月前

LOJ#2546. 「JSOI2018」潜入行动 树形DP

现在看来这道题就简单了. 首先要知道,树形 DP 的复杂度是 $O(n^2)$ 的(通过严格控制子树大小,均摊下来一个状态只会贡献 n 次). 然后这道题要求选的个数最多为 $k$,所以复杂度就是 $O(nk)$ 的. 设 4 个状态:$f[x][y][0/1],g[x][y][0/1]$ 分别代表 $x$ 点是否被控制/ $x$ 点是否选择了一个点. ...
原创
23阅读
0评论
0点赞
发布博客于 9 月前

CF916E Jamie and Tree 倍增+换根+线段树

这道题有 3 个操作:1. 换根2. 求 LCA3. 子树修改/子树求和. 对于第一个操作,直接换根就行.对于第二个操作,分这几种情况讨论:$x,y$ 都在以 1 为根,$rt$ 的子树中,$x,y$ 其中 1 个在子树中,$x,y$ 都不在子树中.对于都在子树中的情况,答案即为 $lca(x,y)$;对于第 2 种情况,答案为 RT;对于第 3 种情况,...
原创
37阅读
0评论
0点赞
发布博客于 9 月前

LuoguP5652 基础博弈练习题 博弈

归纳+找规律. 如果终点 $r$ 是奇数,那么 $r-m-1$ ~ $r-1$ 这段区间都是先手必败. 然后我们发现 $r-m-1$ 及之前都是偶数的话还是先手比败,直到遇到一个奇数,就又变成了先手必胜.那么,对于一个奇数位置,其前面第一个先手必胜位置就是 $r-m-1$ 前第一个奇数位置. 对于偶数,我们发现是先手必败,而其前面第一个先手必胜点就是其前面...
原创
38阅读
0评论
0点赞
发布博客于 9 月前

CF521D Shop 贪心

比较好的一道贪心题. code:#include <set>#include <vector>#include <cstdio> #include <cstring> #include <algorithm> #define N 100009 #define ll long long...
原创
31阅读
0评论
0点赞
发布博客于 9 月前

CF526F Pudding Monsters 线段树+单调栈

刚开始想出了一个分治做法,但是比较麻烦,需要分 4 中情况讨论.后来偷看了一眼标签发现是线段树,然后就想出了这个线段树做法.考虑序列以 $r$ 为右端点的答案,有 $\sum_{l=1}^{i} max(l,i)-min(l,i)=i-l$. 其中这个条件可以写成 $max(l,i)-min(l,i)+l=i$. 然后特别注意任何时候都满足不等式:$r-l \...
原创
34阅读
0评论
0点赞
发布博客于 9 月前

CF662A Gambling Nim 线性基

挺好的一道题. 判断先手必胜即判断所有数异或值是否为 0. 直接判断的话不好做,不妨先强制所有数选 a,然后再看有几种方案使得选一些 b 让序列异或值为 0. 假如想让位置 i 从 a->b,要异或上 $a_{i}$ xor $b_{i}$.那么,就先求出所有 $a_{i}$ 的异或和 sum,然后将 $a_{i}$ xor $b_{i}$ 扔到线性基里,看...
原创
29阅读
0评论
0点赞
发布博客于 9 月前

LuoguP4271 [USACO18FEB]New Barns P 树的直径+LCT

结论:如果边权非负,则距离树上一个点最远的点一定是直径端点之一. 由此可得我们只需维护树的直径就行. 这种维护方法的局限性在于不可以有删边操作. 假如合并两个连通块 A,B, 直径端点分别为 $x_{0},x_{1},x_{2},x_{3}$,新树直径的端点一定是在 4 个点中的两个. 那就两两取 max,然后求直径端点距离 x 的距离用 LCT 中的 spl...
原创
31阅读
0评论
0点赞
发布博客于 9 月前

LuoguP5889 跳树 线段树

可以将跳左/右/父亲抽象成二进制的形式. 跳左:x<<1 跳右:x<<1|1父亲:x>>1 但是题中说如果跳到根节点之后再跳父亲编号仍然不变比较不好处理. 但是我们发现一个性质:令 $fl$ 表示一个区间能跳到最靠上的祖先,$path$ 表示跳到该祖先后向下跳的路径,答案一定可以表示成 max(1,x>>fl)...
原创
46阅读
0评论
0点赞
发布博客于 9 月前

线段树历史版本和

假设当前进行到操作 $m$. 1. 将区间 $[l,r]$ 每个数加上 $v$. 2. 询问当前区间 $[l,r]$ 的和.3. 令 $S(l,r,x)$ 代表 $[l,r]$ 区间在时刻 $x$ 时之和,求 $\sum_{i=0}^{m} S(l,r,i)$.题解:对于一个区间,我们要求当前区间和以及所有历史时刻之和.考虑维护 $sum, sum...
原创
46阅读
0评论
0点赞
发布博客于 9 月前

LuoguP4183 [USACO18JAN]Cow at Large P 点分治+树状数组+prufer序列

非常好的一道题. 假设当前要求 $ans[x]$. 先令 $x$ 为根,然后发现对于子树 $y$ 来说,令 $g[y]$ 表示距离 $y$ 最近的叶子节点. 若 $g[y] \leqslant dis(x,y) $ 则 $y$ 子树的叶子中选一个就可以防止 $x$ 走到 $y$ 的子树中. 那么这个时候的答案就是 $\sum [g[i]...
原创
41阅读
0评论
0点赞
发布博客于 9 月前

LuoguP3924 康娜的线段树 期望+线段树

根据期望的定义,我们可以求出所有情况之和再除以情况数量.如果长度满足 $n=2^k$,线段树上一个节点新加 $v$ 的话 $v$ 的贡献就是 $v \times si[x]$,si[x] 即子树下叶节点个数. 如果长度不满足上述条件,由于线段树是完全二叉树结构,我们可以强制让深度小于最大深度的叶节点多一个贡献。 如果单点修改,该点的贡献就是叶节点到根节点所有节点 $...
原创
23阅读
0评论
0点赞
发布博客于 9 月前

luoguP3710 方方方的数据结构 KDtree

刚开始看到这道题的时候想的是线段树分治,毕竟这里的乘法和加法都是可以撤销的. 但是后来发现如果想要线段树分治的话就必须要满足交换律,但是标记 $(x,y)$ ( 乘 $x$ 后加 $y$)只满足结合律,不满足交换律. 那么就考虑 kdtree. kdtree 是维护平面上点的数据结构,然后我们可以把每个询问抽象成点 $(t_{i},x_{i})$ 表示时间轴和坐标...
原创
34阅读
0评论
0点赞
发布博客于 9 月前

luoguP5154 数列游戏 区间DP

令 $ok[l][r]$ 表示 $[l,r]$ 是否都能删掉,$g[l][r],f[l][r]$ 分别表示能否删成只剩左/右端点. 然后按照区间 DP 的方式来转移上述 3 个状态,得到最终的 $ok[l][r]$. 最后再令 $ans[i]$ 表示 $1$ ~ $i$ 的最优解,然后枚举 $ok[j][i]$ 来更新答案即可. 时间复杂度为 $O(n^3)$,但是区...
原创
25阅读
0评论
0点赞
发布博客于 9 月前

LOJ#2206. 「HNOI2014」世界树 虚树+倍增

比较好的一道虚树题. 建出虚树,然后计算虚树中距离点 $x$ 最近的关键点,这个来一次树形dp+换根即可实现. 难点在于计算 $x$ 到 $x$ 父亲这一段所有节点归属于谁(肯定属于 $x$ 的最近点或 $x$ 父亲最近点). 这里的话肯定可以二分出拐点(拐点以前属于 $x$,拐点以后属于 $y$),然后根据虚树的性质,$x$ 到父亲之间节点的...
原创
26阅读
0评论
0点赞
发布博客于 9 月前

LOJ#3326. 「SNOI2020」字符串 后缀树+贪心

问题可以转化为:$A$ 与 $B$ 所有前缀一一配对,LCP 之和最大是多少.构建后缀树,然后对于点 $x$,若 LCP 为 $x$ 则贡献就是 $x$ 子树中 $A$ 点和 $B$ 点较小数量. 我们发现如果要求和最大,就贪心匹配. 由于后缀树中点 $x$ 的长度为 mx[x] ~ mx[pre[x]],我们需要分类讨论 $LCP$ 的长度.但是由于题中特殊...
原创
137阅读
0评论
0点赞
发布博客于 9 月前

luoguP2824 [HEOI2016/TJOI2016]排序 二分+线段树

这道题非常神仙啊. 假如说序列中只有 0,1 的话我们只需要用线段树维护 0,1的个数然后进行区间覆盖即可. 由于所有数互不相同,考虑二分 $q$ 点上的数 $mid$,然后将大于等于 $mid$ 的设置成 $1$,小于的设置成 $0$. 然后我们对新构建的序列从头到尾操作一下,发现如果 $q$ 位置是 $1$ 的话答案要大于等于 $mid$,反之亦然. ...
原创
24阅读
0评论
0点赞
发布博客于 9 月前

luoguP5789 [TJOI2017]可乐(数据加强版) 矩阵乘法

矩阵乘法,唯一需要注意的地方就是这道题需要维护前缀和. 那么我们就多增加一个变量 $g$,表示前缀和,然后在设置矩阵的时候将 $g$ 要乘的一列中的元素都设置成前缀和即可. code:#include <cstdio> #include <algorithm>#include <cstring> #define N 103...
原创
36阅读
0评论
0点赞
发布博客于 9 月前

luoguP5653 基础最优化练习题 拆系数+贪心

直接算不好算,考虑拆开系数来算贡献. 对于 $b_{i}w_{i}$,可以看成 $1$ ~ $i$ 中每走一步就会产生 $w_{i}$ 的贡献,也就说 $i$ 的贡献就是 $i$ 的后缀和. 那么问题可以转化为: 有 $n$ 个元素,每个元素可以选 $[-k,k]$ 个,且第 $i$ 时刻选的元素个数不能超过 $a_{i}$. 显然,对于贡献为负...
原创
36阅读
0评论
0点赞
发布博客于 9 月前

luoguP1641 [SCOI2010]生成字符串 组合

可以将问题抽象成选 1 就向右走,选 0 就向上走,且不能经过 y=x+1 的方案数. 考虑容斥:总-不合法. 总方案数就是 $\binom{n+m}{n}$,然后不合法的方案数对于 y=x+1 对称后发现就是 $(-1,1)$ 走到 $(n,m)$ 的方案数.code:#include <bits/stdc++.h> #define ...
原创
16阅读
0评论
0点赞
发布博客于 9 月前

luoguP6640 [BJOI2020] 封印 SAM+线段树

不难的一道字符串题. 建立 $T$ 的 SAM,然后根据 $S$ 中的询问按照右端点离线,依次在 $T$ 的 SAM 上匹配. 查询的时候分两种情况讨论一下,用线段树维护就行了.code:#include <cstdio> #include <cstring>#include <algorithm> #defin...
原创
51阅读
1评论
0点赞
发布博客于 9 月前

luoguP2137 Gty的妹子树 分块+主席树+DFS序

对于一类带修改问题可以采用对时间(操作)分块,然后定期重构的方式来维护. 设块的大小为 $B$,则重构 $\frac{Q}{B}$ 次,每次查询的复杂度为 $O(B \log n)$. 计算一下 $B$ 的大小来平衡重构和查询的复杂度即可. 这种纯数据结构题都挺好写的.code:#include <cstdio> #include &l...
原创
29阅读
0评论
0点赞
发布博客于 9 月前

Codeforces Round #650 (Div. 3)

打的 vp,花了 1h 30min 切了前 6 个,后来花了 20min 把最后一题也切掉了. 难度不大,但是想要进前 10 的话手速还是要快一点. A - Short Substrings观察一下字符串,然后发现相同的保留一个就行.#include <bits/stdc++.h> #define N 1087 #define ll long ...
原创
40阅读
0评论
0点赞
发布博客于 9 月前

JLOI2020 滚粗记

Day-20省队选拔日期公布了,果断停课.Day-1吉林省总共 8 个名额,除去女生的话只剩下 7 个了.联赛考得非常崩,大概排在全省第 7. 听说师大有两个联赛成绩比我高的不学了,那进队岂不是很稳吉林省基本上只有师大和吉大两个学校会进行系统训练,所以除了这两个学校之外的学校的选手基本上不太会造成威胁. 然后我们学校有 3 个名额(只有 2 个人去) ,压力不...
原创
42阅读
0评论
0点赞
发布博客于 10 月前

LOJ#504. 「LibreOJ β Round」ZQC 的手办 线段树+堆

由于只有取 max 标记,所以直接在线段树上维护就行. 然后取前 k 大的话就用一个堆来维护四元组 $(l,r,v,pos)$ 表示区间 $[l,r]$ 的最小值为 $v$ ,位置为 pos.查询的时候按照 $v$ 递增的顺序取出堆顶,然后按照 pos 分裂,再扔回堆里就行了.code:#include <cstdio> #include <...
原创
37阅读
0评论
0点赞
发布博客于 10 月前

luoguP1533 可怜的狗狗 平衡树模板题

省选前,练练板子 + 对拍.这道题我写了 30min,然后没有任何 bug. 简单来了 10 多组数据,然后测了几个极限数据(看看会不会爆空间之类的)结果提交上去是 60pts,最后发现题目中没有给出 a[i] 的数据范围,然后后面的点 a[i] 超级大. code:#include <bits/stdc++.h> #define ll...
原创
25阅读
0评论
0点赞
发布博客于 10 月前

UOJ#31. 【UR #2】猪猪侠再战括号序列 splay

显然可以直接凑左面全是左括号,右面全是右括号的情况. 然后区间翻转就用 splay 模拟好了.splay 的时候一定注意一点:如果没有调用 find(x),就一定要手动把 x 及其祖先的节点 pushdown.code;#include <bits/stdc++.h> #define N 100009 #define ll long...
原创
45阅读
0评论
0点赞
发布博客于 10 月前

luoguP4869 albus就是要第一个出场 线性基

省队选拔前复习一下线性基.证明不会,永远都不会,学习证明是不可能的有如下结论:1. 线性基大小是固定的,不会因为加入顺序不同而改变.2. 设线性基大小为 k,则一共有 $2^k$ 种不同的异或结果.3. 每种异或结果出现次数恰好为 $2^{n-k}$.4. 线性基内的数随便异或线性基也不变.#include <bits/stdc++.h> ...
原创
36阅读
0评论
0点赞
发布博客于 10 月前

LuoguP3924 康娜的线段树 线段树+期望

秒了一个 70 pts 做法,满分做法无外乎是用前缀和来去掉一个 log.code:#include <bits/stdc++.h> #define N 1000009 #define ll long long #define lson now<<1 #define rson now<<1|1 #define setI...
原创
56阅读
0评论
0点赞
发布博客于 10 月前

UOJ#209. 【UER #6】票数统计 组合+容斥

自己独立想出来的,开心. 首先,对于 $x$ 不等于 $y$ 的情况,显然只限制前缀/后缀. 然后如果没有 x 与 y 相等的情况的话我们完全可以枚举总的 1 的个数,然后限制后缀的就可以转化成限制前缀的. 如果引入 x 与 y 相等的情况,也就是说要求前缀或后缀都填满也按照上述方式处理即可.但是要简单容斥一下,即 ans(前缀)+ans(后缀)-a...
原创
30阅读
0评论
0点赞
发布博客于 10 月前

luoguP3601 签到题 质因数分解+欧拉函数

题不难,但是求欧拉函数的部分要注意一下:求欧拉函数的时候是没有必要取模的,因为一定能除开. 如果取模的话由于出题人没有保证存在逆元会出现错误. 由于 $[L,R]$ 区间大小不超过 $10^6$,然后每个数最多只有一个大于根号 R 的质因子,所以可以筛出来 $10^6$以内的质因数,然后调和级数来更新答案.code: #include <bits/...
原创
32阅读
0评论
0点赞
发布博客于 10 月前

Simple Final Test 题解

往届学长的一场比赛. 总结:三道水题 haha! Task 1 省选 jloi.cpp/in/out给你一个字符串,你每次只能删除一个回文串,问你最少需要几步将字符串删完,或输出无解.题解:显然,答案最多为 2,而如果这个串本身就不是回文串答案就是 1,所以难点就是判断无解的情况. 手画几组发现无解有两种情况:s[1...len/2] 与 s[n-len/2...
原创
33阅读
0评论
0点赞
发布博客于 10 月前

LOJ#2954. 「NOIP2018」填数游戏 打表+搜索

1 ~ 6 的都跑完了,7 的还没跑出来.code1:#include <bits/stdc++.h> #define ll long long #define mod 998244353#define setIO(s) freopen(s".in","r",stdin) using namespace std; int a[10][10]...
原创
38阅读
0评论
0点赞
发布博客于 10 月前

Educational Codeforces Round 89 (Rated for Div. 2)

这场比赛切了 A ~ D,然后 E WA on test 32,考试后特判了一个边界就过了. 感觉打得还行,但是没有在考试中 AC E 题实属可惜.A Shovels and Swords日常被 div2 A 题卡住.jpg开始写了一个不知道对不对的贪心过不了样例,然后猜了一个小结论(a+b)/3,就过了.#include <bits/stdc++.h&...
原创
26阅读
0评论
0点赞
发布博客于 10 月前

LOJ#2044. 「CQOI2016」手机号码 数位dp

这次的状态十分复杂,写递推版不现实. 于是学了一下递归版数位dp,感觉比递推版高明多了,好写还好想.如果以后碰到状态复杂的数位dp的话可以考虑递归版本. code:#include <bits/stdc++.h> #define ll long long #define setIO(s) freopen(s".in","r",stdin) us...
原创
31阅读
0评论
0点赞
发布博客于 10 月前

luoguP4317 花神的数论题 数位dp

这道题细节并不算太多,但是求方案数的时候一定不要乱取模!如果非要取模的话也要遵循欧拉定理.code:#include <bits/stdc++.h> #define N 57 #define ll long long #define mod 10000007#define setIO(s) freopen(s".in","r",stdin) ...
原创
30阅读
0评论
0点赞
发布博客于 10 月前