苟为蒟蒻又何妨

DianPiBoZhuBaoFuSheHui
私信 关注
SC.ldxcaicai
码龄4年

我很菜=_=

  • 194,759
    被访问量
  • 988
    原创文章
  • 3,917
    作者排名
  • 151
    粉丝数量
  • 于 2017-10-14 加入CSDN
获得成就
  • 获得1,107次点赞
  • 内容获得131次评论
  • 获得135次收藏
荣誉勋章
TA的专栏
  • -----杂-----
    2篇
  • 题解
    68篇
  • 高精度
    2篇
  • 状态压缩
    4篇
  • dfs序
    9篇
  • 悬线法
    3篇
  • 小技巧
    22篇
  • 前缀和
    10篇
  • 贪心
    42篇
  • 随机化
    5篇
  • 三分
    1篇
  • 二分答案
    27篇
  • 递推
    2篇
  • 倍增
    15篇
  • 双指针
    4篇
  • 模拟
    14篇
  • bitset
    1篇
  • 搜索
    22篇
  • 枚举
    8篇
  • 构造
    3篇
  • STL
    15篇
  • -----计算几何-----
    1篇
  • 计算几何
    28篇
  • 扫描线
    2篇
  • 凸包
    14篇
  • 半平面交
    6篇
  • 旋转卡壳
    2篇
  • 凸包卷包裹
    1篇
  • 圆的反演
    1篇
  • 最小覆盖圆
    1篇
  • -----数学-----
    1篇
  • 数学
    27篇
  • 数论
    28篇
  • gcd
    2篇
  • exgcd
    3篇
  • 类欧几里得
    3篇
  • 二次剩余
    1篇
  • 唯一分解定理
    1篇
  • 广义欧拉定理
    1篇
  • 线性筛
    4篇
  • 亚线性筛
    2篇
  • 二项式反演
    1篇
  • 单位根反演
    2篇
  • 莫比乌斯函数
    1篇
  • 整除分块
    1篇
  • 容斥原理
    32篇
  • 组合数学
    35篇
  • 斯特林数
    7篇
  • 生成函数
    27篇
  • 拉格朗日插值
    3篇
  • ntt
    28篇
  • fft
    17篇
  • fst
    1篇
  • fmt
    3篇
  • fwt
    2篇
  • lucas
    4篇
  • 博弈论
    4篇
  • 01分数规划
    11篇
  • 快速幂
    10篇
  • 矩阵快速幂
    15篇
  • 常系数齐次线性递推
    6篇
  • BM算法
    4篇
  • 高斯消元
    3篇
  • 矩阵树定理
    4篇
  • 抽屉原理
    1篇
  • -----分治,分块与合并算法-----
    1篇
  • 分治
    5篇
  • 整体二分
    5篇
  • 线段树分治
    5篇
  • cdq
    2篇
  • 点分树
    3篇
  • 点分治
    11篇
  • 分块
    13篇
  • 莫队算法
    8篇
  • 回滚莫队
    1篇
  • 树上莫队
    1篇
  • 启发式合并
    6篇
  • dsu on tree
    1篇
  • 边分治
    1篇
  • -----字符串算法-----
    1篇
  • hash
    10篇
  • kmp
    4篇
  • ac自动机
    7篇
  • 最小表示法
    2篇
  • manacher
    2篇
  • 后缀数组
    14篇
  • 后缀自动机
    21篇
  • 回文自动机
    1篇
  • -----动态规划-----
    1篇
  • dp
    183篇
  • 基础dp
    17篇
  • 线性dp
    9篇
  • 背包
    9篇
  • 计数dp
    4篇
  • 区间dp
    10篇
  • 概率dp
    11篇
  • 期望dp
    14篇
  • 树形dp
    27篇
  • 换根dp
    5篇
  • 状态转移
    8篇
  • 状压dp
    22篇
  • dp套dp
    2篇
  • 斜率优化
    13篇
  • 凸优化
    1篇
  • 决策单调性优化
    3篇
  • 数位dp
    18篇
  • 轮廓线dp
    8篇
  • -----图论-----
    1篇
  • 最短路
    21篇
  • floyd
    6篇
  • 传递闭包
    1篇
  • spfa
    7篇
  • dijkstra
    6篇
  • korasaju
    1篇
  • lca
    2篇
  • tarjan
    8篇
  • 割点
    2篇
  • 仙人掌
    7篇
  • 最小生成树
    9篇
  • 次小生成树
    2篇
  • kruskal
    10篇
  • 拓扑排序
    5篇
  • 欧拉路
    2篇
  • 最大流
    31篇
  • 费用流
    13篇
  • 二分图匹配
    1篇
  • 可行流
    3篇
  • 上下界
    3篇
  • 支配树
    2篇
  • -----数据结构-----
    1篇
  • 队列
  • 树状数组
    25篇
  • 单调队列
    10篇
  • 单调栈
    5篇
  • 堆
  • 双向链表
    3篇
  • 动态开点
    2篇
  • 可持久化trie
    1篇
  • 并查集
    18篇
  • 线段树
    116篇
  • 线段树合并
    11篇
  • 树链剖分
    40篇
  • 主席树
    21篇
  • 替罪羊树
    1篇
  • splay
    9篇
  • 非旋treap
    15篇
  • lct
    10篇
  • 虚树
    3篇
  • 长链剖分
    9篇
  • 01trie
    6篇
  • 可持久化01trie
    1篇
  • kd-tree
    1篇
  • odt
    6篇
  • 二进制分组
    2篇
  • st表
    1篇
  • trie
    1篇
  • 圆方树
    1篇
  • 四分树
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

诈尸???

然而并没有初赛爆炸 && 睡醒时间超过 10:3010:3010:30 && 签到失败 祭
原创
340阅读
1评论
1点赞
发布博客于 2 年前

告辞

很抱歉,该 blogblogblog 已被博主弃用不过以后偶尔还是会上线问问题/回复大家的提问/stO机房众神仙新 blogblogblog 不太好看,就不放地址了,有缘的话有生之年应该能搜到...
原创
370阅读
0评论
1点赞
发布博客于 2 年前

190921 CSP-S 2019模拟

A数数题考虑到一个性质是对于每个数,最多存在一个 ≤15\le15≤15 的质因子,这样可以将所有数按照其 ≥15\ge15≥15 的质因子分组,设 fi,a1,a2,a3,a4,a5,a6f_{i,a_1,a_2,a_3,a_4,a_5,a_6}fi,a1​,a2​,a3​,a4​,a5​,a6​​ 表示前 iii 组,它们的 lcmlcmlcm 的 2,3,5,7,11,132,3,5,7...
原创
178阅读
0评论
1点赞
发布博客于 2 年前

考试总结汇总

这篇文章主要写博主每次模拟考的总结与之前考过的一些重要考试的总结:NOIP2018:NOIP2018:NOIP2018: 一场在全国排名极其 ldxldxldx 的比赛,机房里其余几个大佬全部考出了 zxyzxyzxy 级的水平轻松吊打我SCOI2019:SCOI2019:SCOI2019: 一场在全省排名极其 ldxldxldx 的比赛,机房里其余几个大佬全部考出了 zxyzxyzxy 级的...
原创
374阅读
1评论
1点赞
发布博客于 2 年前

190918 CSP-S 2019模拟

按照惯例,考完第二天调题(大雾A现在博主已知的有两种做法,并实现了其中一种。第一种是 stdstdstd 的做法 我考场算错复杂度了告辞就是利用分治+ floydfloydfloyd ,复杂度 O(n3log⁡n)O(n^3\log n)O(n3logn)第二种方法 from Junfrom\ Junfrom Jun ,意思是枚举每个点跑一次 dijkstradijk...
原创
242阅读
0评论
1点赞
发布博客于 2 年前

51nod 序列求和系列 简要题解

文章目录序列求和 V1序列求和 V2序列求和 V3序列求和 V4序列求和 V5序列求和 V1传送门有个显然的结论是 S(n)=∑i=1nikS(n)=\sum_{i=1}^ni^kS(n)=∑i=1n​ik 是 k+1k+1k+1 次多项式,证明可以用差分。于是直接上拉格朗日插值即可。CODE:#include<bits/stdc++.h>#define ri regis...
原创
118阅读
0评论
1点赞
发布博客于 2 年前

190913 CSP-S 2019模拟

Aldxldxldx 级别的送分题代码:#include<bits/stdc++.h>#define ri register int#define pb push_backusing namespace std;const int rlen=1<<18|1;typedef long long ll;typedef long double ld;inlin...
原创
127阅读
0评论
1点赞
发布博客于 2 年前

190911 CSP-S 2019模拟

Adddddd长链剖分与辣鸡 WOJWOJWOJ代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se second#define pb push_backusing namespace std;const int rlen=1<<18|1;char buf[...
原创
144阅读
0评论
2点赞
发布博客于 2 年前

190908 CSP-S 2019 模拟

AddDPddSTDfi,j,kf_{i,j,k}fi,j,k​表示长度为 jjj 的序列放了 kkk 种长度不超过 kkk 的连续颜色段然后我开的long long而不是long double成功败北告辞代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secon...
原创
178阅读
0评论
1点赞
发布博客于 2 年前

Codeforces 1214 简要题解

文章目录ABCDEFGH比赛传送门A发现就是求min⁡{[n−d x−5e y≥0]n−d x−5e y}\min\{[n-d\ x-5e\ y\ge0]n-d\ x-5e\ y\}min{[n−d x−5e y≥0]n−d x−5e y}考虑到 nnn 很小于是可以暴力枚举CODEB题意读错调了一年 n...
原创
529阅读
0评论
1点赞
发布博客于 2 年前

TJOI2019 简要题解

LOJ传送门吐槽:博主的代码能力严重退化,6道水题第一次提交期望得分100+100+100+100+100+100=非常DD的分数,实际得分100+90+100+15+100+25=极其DD的分数看来还是得多写题呀。甲苯先生的字符串CSPCSPCSP 难度的矩乘快速幂CODE甲苯先生的滚榜CSPCSPCSP 难度的平衡树,然而博主由于原来一直只会写 fhqtreapfhq_treap...
原创
77阅读
0评论
1点赞
发布博客于 2 年前

SDOI2019 简要题解

LOJ传送门快速查询仔细读题会发现修改和查询只有单点和全局的然后考虑到操作次数比较多,但涉及到的单点的数量是 O(q)O(q)O(q) 的,于是把所有涉及到的单点离散化之后就能做到 O(1)O(1)O(1) 的修改查询核心思想就是把涉及到的单点用一个栈来维护,然后假设把它变成 vvv ,放入栈中的值就应该是 v′=v−addmulv&#x27;=\frac{v-add}{mul}v...
原创
163阅读
0评论
2点赞
发布博客于 2 年前

190831 CSP-S 2019 模拟

A辣鸡 stdstdstd 不知道你想表达些啥非要多写个没用的函数还把复杂度上界算错了这题做法trival,写起来去世考虑到没有最后一个询问就是常规吉司机线段树,现在我们构造一个 Ci=Ai−BiC_i=A_i-B_iCi​=Ai​−Bi​这样最后就问的是 sumA−sumCsum_A-sum_CsumA​−sumC​我们发现只用在改 AAA 的时候顺便改一下 CCC 然后把 CCC 中...
原创
380阅读
0评论
1点赞
发布博客于 2 年前

190829 CSP-S 2019 模拟

A求个异或前缀和然后做完全图最小异或生成树即可。#include<bits/stdc++.h>#define ri register int#define fi first#define se second#define lb lower_bound#define ub upper_bound#define all(x) begin(x),end(x)#define ...
原创
582阅读
0评论
1点赞
发布博客于 2 年前

k进制FWT学习笔记

从线性代数角度看快速变换考虑我们现在对两个幂级数 A,BA,BA,B 定义运算 ∗*∗ :假设 A∗B=CA*B=CA∗B=C ,那么要求满足 Ck=∑i⊕j=kAiBjC_k=\sum\limits_{i\oplus j=k}A_iB_jCk​=i⊕j=k∑​Ai​Bj​ ,现在给出 A,BA,BA,B ,要求快速求出 CCC 。于是我们考虑构造矩阵 fff 满足 (f∗A)∗(f∗B)...
原创
671阅读
0评论
3点赞
发布博客于 2 年前

bzoj3451: Tyvj1953 Normal(点分治+ntt)

传送门利用期望的线性性。考虑到iii在jjj子树中的概率为1dist(i,j)\frac1{dist(i,j)}dist(i,j)1​,于是问题变成了统计两点间距离的出现次数。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int rlen=1<<18|1;...
原创
67阅读
0评论
1点赞
发布博客于 2 年前

190822 CSP-S 2019 模拟

A艹居然被卡常了,100->50这貌似是原题的加强版加个hash乱搞一下就能过了代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace std;typedef long long ll;const int rlen=1&...
原创
234阅读
0评论
1点赞
发布博客于 2 年前

LOJ#3095. 「SNOI2019」字符串(for循环)

传送门很显然可以把颜色相同的连续段压起来,然后O(n)O(n)O(n)贪个心。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int N=1e6+5;char s[N];int n,sig=0,ct[N],frt=0,bck,ans[N];int main(){ #...
原创
78阅读
0评论
1点赞
发布博客于 2 年前

bzoj4198: [Noi2015]荷马史诗(哈夫曼树)

传送门建出kkk叉哈夫曼树然后贪心即可,注意维护深度。代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace std;const int rlen=1<<18|1;inline char gc(){ stati...
原创
49阅读
0评论
1点赞
发布博客于 2 年前

Codeforces1204 简要题解

文章目录ABCDE传送门A模拟。代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace std;inline int read(){ #define gc getchar int ans=0; bool f=1; cha...
原创
287阅读
2评论
1点赞
发布博客于 2 年前

洛谷P5114 八月脸(边分治+闵可夫斯基和)

传送门边分治+闵可夫斯基和即可(注意要处理lca的情况代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace std;const int rlen=1<<18|1;inline char gc(){ static c...
原创
116阅读
0评论
1点赞
发布博客于 2 年前

bzoj2870: 最长道路tree(边分治)

传送门边分治板题。。。三度化即可。代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace std;const int rlen=1<<18|1;inline char gc(){ static char bu...
原创
85阅读
0评论
1点赞
发布博客于 2 年前

Codeforces1168 简要题解

传送门A题考虑到答案一定不会超过mmm次,于是二分答案+贪心checkcheckcheck即可。代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace std;inline int read(){ #define gc getc...
原创
292阅读
0评论
1点赞
发布博客于 2 年前

Codeforces1202 简要题解

文章目录ABCDEF传送门DDD看错题到比赛结束都没看出来。A传送门思路:考虑reversereversereverse所有串然后低位贪心即可。代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace std;inline ...
原创
230阅读
0评论
2点赞
发布博客于 2 年前

bzoj5019: [Snoi2017]遗失的答案(状压dp+fmt)

传送门跟这道题的想法基本一样吧。只不过这道题是求出所有可能选出的数拿来做状压dpdpdp求出总方案。然后维护一下前后缀的dpdpdp值,用fmtfmtfmt合并prei−1pre_{i-1}prei−1​和sufi+1suf_{i+1}sufi+1​来得到缺失第iii个可行值的方案数。代码:#include<bits/stdc++.h>#include<tr1/uno...
原创
84阅读
0评论
1点赞
发布博客于 2 年前

bzoj4036: [HAOI2015]按位或(dp+fmt)

传送门考虑fi,jf_{i,j}fi,j​表示第iii秒选择的数并起来结果为jjj的方案。那么anss=∑T=0+∞T(fT,s−fT−1,s)=lim⁡T→+∞TfT,s−∑T=0+∞fT,s\begin{aligned}ans_s=&amp;\sum\limits_{T=0}^{+\infin}T(f_{T,s}-f_{T-1,s})\\=&amp;\lim\limits_...
原创
85阅读
0评论
1点赞
发布博客于 2 年前

洛谷P4705 玩游戏(生成函数+分治ntt)

传送门sbsbsb题。。。考虑到Anst=1nm∑i=1n∑j=1m(ai+bj)t=1nm∑i=1n∑j=1m∑k=0tCtkaikbjt−k=t!nm∗[xn]((∑i≥0∑j=1najij!xi)(∑i≥0∑j=1mbjij!xi))\begin{aligned}Ans_t=&amp;\frac1{nm}\sum_{i=1}^n\sum_{j=1}^m(a_i+b_j)^t\\=...
原创
88阅读
0评论
1点赞
发布博客于 2 年前

LOJ#6485. LJJ 学二项式定理(单位根反演+二项式展开)

传送门ldxldxldx又来水水题啦Ans=∑i=0nCniSiai%4=∑j=03aj∑i=0nCniSi∑k=03(ω4i−j)k4=14∑j=03aj∑k=03ω4−kj∑i=0nCni(Sω4k)i=14∑j=03aj∑k=03ω4−kj(Sω4k)n\begin{aligned}Ans=&amp;\sum\limits_{i=0}^nC_n^iS^ia_{i\%4}\\=&...
原创
102阅读
0评论
1点赞
发布博客于 2 年前

Codeforces1200 简要题解

文章目录ABCDEF传送门总结一下:CCC题读入进来的时候没开longlonglong longlonglong导致fstfstfst.FFF题最后5min5min5min才发现一个细节读错了最后凉凉.还是挺遗憾的A暴力模拟即可。#include<bits/stdc++.h>#define ri register int#define fi first#defin...
原创
212阅读
0评论
1点赞
发布博客于 2 年前

190811 CSP-S 2019 模拟

diyiti直接考虑把nnn质因数分解,然后就是一个套路的容斥。其实可以二进制压位枚举集合然后枚举其子集求容斥系数但能写dfs鬼才写那玩意儿代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace std;const int mod...
原创
75阅读
3评论
1点赞
发布博客于 2 年前

AtCoder Beginner Contest 137 简要题解

文章目录ABCDEF传送门NMDE题E题E题读错了调了一年A模拟代码:#include<bits/stdc++.h>#define ri register intusing namespace std;inline int read(){ #define gc getchar int ans=0; char ch=gc(); while(!isdigit(ch...
原创
205阅读
0评论
2点赞
发布博客于 2 年前

hdu5283 Senior's Fish(线段树+均摊分析)

传送门考虑到每只鱼只会进网出网一次,于是直接建四棵线段树维护鱼的状态并建一棵树状数组维护答案即可。注意有多组数据代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int rlen=1<<18|1;inline char gc(){ static char b...
原创
83阅读
0评论
1点赞
发布博客于 2 年前

洛谷P4931 情侣?给我烧了!(加强版)(容斥)

传送门我们接着这篇题解的思路考虑。gn,0g_{n,0}gn,0​到底想表达什么?貌似指的是nnn个人没有一对情侣坐在一起的方案数。emmmmemmmmemmmm,那不就是把两个人绑在一起拿来错排吗?于是我们显然可以O(n)O(n)O(n)预处理这个ggg数组了。先不考虑顺序,每次添加一对情侣,只有一个跟前面的人换,另一个不动⇒gi=(2n−2)(gi−1+gi−2)\Rightarr...
原创
59阅读
0评论
1点赞
发布博客于 2 年前

洛谷P4921 情侣?给我烧了!(容斥)

传送门来一发容斥做法。fi,jf_{i,j}fi,j​表示iii对位置jjj对人配对成功的方案。然后fn,k=(Cnk)22kk!∑i=0k(−1)i(Cn−ki)2i!2i(2n−2k−2i)!=(Cnk)22kk!g(n,k)=(Cnk)22kk!g(n−1,k−1)\begin{aligned}f_{n,k}=&amp;(C_n^k)^22^kk!\sum\limits_{i=...
原创
50阅读
0评论
1点赞
发布博客于 2 年前

洛谷P4389 付公主的背包(生成函数)

传送门按照这上面写的推导化简并操作就可以水过这个菜题。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int rlen=1<<18|5;inline char gc(){ static char buf[rlen],*ib,*ob; (ib==ob)&am...
原创
182阅读
0评论
1点赞
发布博客于 2 年前

UOJ#450. 【集训队作业2018】复读机(EGF+单位根反演)

传送门蒟蒻的第一道单位根反演,感觉还挺好用的考虑对于每个复读机列出生成函数:F=∑i≥0[d∣i]xii!F=\begin{aligned}F=&amp;\sum_{i\ge0}[d|i]\frac{x^i}{i!}\\F=&amp;\end{aligned}F=F=​i≥0∑​[d∣i]i!xi​​...
原创
138阅读
0评论
1点赞
发布博客于 2 年前

LOJ#2409. 「THUPC 2017」小 L 的计算题 / Sum(生成函数)

传送门直接把答案的OGFOGFOGF搞出来然后交换和式变形即可:F=∑i≥0fixiF=∑i≥0xi∑j=1najiF=∑j=1n∑i≥0(ajx)iF=∑i=1n11−aixF=∑i=1n(1+aix1−aix)F=n+x∑i=1nai1−aixF=n−x(∑i=1nln⁡(1−aix))\begin{aligned}F=&amp;\sum_{i\ge0}f_ix^i\\F=&...
原创
182阅读
0评论
1点赞
发布博客于 2 年前

Codechef Walk on Tree(BM+常系数齐次线性递推)

传送门这题的重点不在用BMBMBM求递推式,也不在求出递推式后的常系数齐次线性递推,而在下面这个结论:对于一个矩阵AAA,我们给出nnn个二元组(ai,bi)(a_i,b_i)(ai​,bi​)并定义一个函数f(k)=∑i=1nAai,bikf(k)=\sum_{i=1}^nA^k_{a_i,b_i}f(k)=∑i=1n​Aai​,bi​k​。 那么fff数列存在递推式,且这个递推式就是其特征...
原创
91阅读
0评论
1点赞
发布博客于 2 年前

hdu6172 Array Challenge(BM+常系数齐次线性递推)

传送门思路:大胆猜想其有常系数线性递推式,然后BMBMBM算法加上多项式取模就可以水过去。BMBMBM出来发现最短线性递推式只有两项真是妙极了BMBMBM算法讲解常系数齐次线性递推讲解代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int mod=1e9+7;ty...
原创
160阅读
0评论
1点赞
发布博客于 2 年前

Berlekamp-Massey算法

算法引入现在我们已经有一种已知递推式快速求数列第nnn项的算法了。现在问题转化成了如何求出一个数列的最短递推式。于是就有了这篇介绍神奇的Berlekamp-Massey算法的blog。我们的Berlekamp-Massey算法可以在O(n2)O(n^2)O(n2)的时间内求出长度为nnn的已知数列的最短递推式,再配合常系数齐次线性递推就可以快速求出数列的任意项。现在给你一个数列,考虑如何...
原创
1057阅读
1评论
5点赞
发布博客于 2 年前

洛谷 P5487 【模板】线性递推+BM算法(BM+多项式取模)

传送门代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int rlen=1<<18|1;inline char gc(){ static char buf[rlen],*ib,*ob; (ib==ob)&&(ob=(ib=buf)+fread...
原创
512阅读
0评论
1点赞
发布博客于 2 年前

bzoj4161: Shlw loves matrixI(常系数齐次线性递推)

传送门解法同这篇但我不是很想写三模数ntt/mttntt/mttntt/mtt,于是暴力多项式乘法和多项式取模。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int rlen=1<<18|1;inline char gc(){ static char b...
原创
197阅读
0评论
1点赞
发布博客于 2 年前

bzoj4944: [Noi2017]泳池(dp+常系数齐次线性递推)

传送门首先转化问题,变成计算能选择的最大的游泳场的面积不超过KKK的概率是多少然后差分即可。设fif_{i}fi​表示强制第iii个格子是危险的,前i−1i-1i−1个格子的面积不超过KKK的概率。那么我们最后可以强制第n+1n+1n+1个格子是危险的计算出前nnn个格子不超过KKK的概率,答案就是fn+11−q\frac{f_{n+1}}{1-q}1−qfn+1​​考虑怎么递推这个fff...
原创
126阅读
0评论
1点赞
发布博客于 2 年前

学习笔记

cdq分治线段树专题SAM专题ODT类欧几里得算法常系数齐次线性递推SGT trickSGT\ trickSGT trick第一类斯特林数小结第二类斯特林数小结扩展埃氏筛圆的反演数学证明多项式相关&&生成函数入门生成函数进阶...
原创
269阅读
0评论
1点赞
发布博客于 2 年前

洛谷P4723 【模板】线性递推(多项式取模+快速幂)

传送门解析见这篇博客代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int rlen=1<<18|1;inline char gc(){ static char buf[rlen],*ib,*ob; (ib==ob)&&(ob=(ib=bu...
原创
171阅读
0评论
1点赞
发布博客于 2 年前

生成函数进阶

文章目录一般生成函数(OGF)OGF的运算OGF生成序列指数生成函数(EGF)EGF的运算EGF生成序列EGF生成集合生成函数计数置换计数背包计数Q1Q2Q3树的计数有标号无根树计数有标号有根树计数无标号有根树计数无标号无根树计数可以先看这篇博客的生成函数和多项式部分。在开头我们再次回顾生成函数定义:一般生成函数(OGF)一般用于处理组合问题(无标号)F(x)=∑i=0∞fixiF(x)...
原创
142阅读
0评论
1点赞
发布博客于 2 年前

bzoj4228:Tibbar的后花园(生成函数+多项式exp)

传送门考虑只可能由链或者长度不为3倍数的三的环组成。然后就把环和链的生成函数列出来生成集合。多项式expexpexp即可。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int mod=1004535809,N=1e6+5;typedef long long ll;...
原创
359阅读
0评论
1点赞
发布博客于 2 年前

bzoj5518: [Zjoi2019]语言(树剖+扫描线)

传送门这题完全可以考虑暴力艹标算。不过还是stO O(nlog⁡n)stO\ O(n\log n)stO O(nlogn)的标算。假设当前处理的路径是(u,v)(u,v)(u,v),对应的点的编号为(a1,a2,...,ak)(a_1,a_2,...,a_k)(a1​,a2​,...,ak​),那么可以想成把k2k^2k2个小矩形(ai,aj)(a_i,a_j)(ai​,...
原创
101阅读
0评论
2点赞
发布博客于 2 年前

LOJ#3157. 「NOI2019」机器人(dp+下降幂多项式)

传送门神题OrzOrzOrz首先50pts50pts50pts大家应该都会。。。直接设fl,r,xf_{l,r,x}fl,r,x​表示区间[l,r][l,r][l,r]中最大值为xxx的方案数,然后枚举最大值出现位置转移即可。复杂度?由于对于每个区间[l,r][l,r][l,r]只有2/32/32/3个点可以用于转移,所以前两维总状态数大概是O(n)O(n)O(n)级别的。而对于最后一...
原创
494阅读
2评论
1点赞
发布博客于 2 年前

SRM 498 FoxJumping(dp+容斥)

传送门神题OrzOrzOrz。先预处理出三个dpdpdp数组:fxi,jfx_{i,j}fxi,j​表示横向不加限制走iii步走到jjj的方案数。fyi,jfy_{i,j}fyi,j​表示纵向不加限制走iii步走到jjj的方案数。fi,jf_{i,j}fi,j​表示走iii步每次只能走被限制的步数最终走jjj格方案数。然后就可以xjb容斥就能算出答案。显然可以枚举走几步非法的得出答案...
原创
55阅读
0评论
1点赞
发布博客于 2 年前

hdu4942 Game on S♂play(线段树)

传送门考虑到中序遍历是不变的。所以我们可以直接用线段树维护中序遍历的信息。当然也可以用splaysplaysplay维护前序遍历的信息。当然亦可以直接上LCTLCTLCT。 自闭警告注意多组数据记得要清零代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int rle...
原创
50阅读
0评论
1点赞
发布博客于 2 年前

190805 CSP-S 2019 模拟

药香沁鼻sbsbsb题。利用dfsdfsdfs进行背包转移即可。复杂度O(nP)O(nP)O(nP)然而蒟蒻O(nP2+nPlog⁡n)O(nP^2+nP\log n)O(nP2+nPlogn)暴力水过而且比正解跑得快。代码(暴力):#include<bits/stdc++.h>#define ri register int#define fi first#defin...
原创
98阅读
0评论
1点赞
发布博客于 2 年前

Codeforces 1198 简要题解

文章目录EF传送门前四题对应这套题的CCC~FFFE传送门考虑用扫描线的思想将原图分成若干小矩形,然后就可以利用行列二分图匹配+差分的思想建图,最后用dinicdinicdinic跑最小割即可。代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusin...
原创
252阅读
0评论
1点赞
发布博客于 2 年前

AtCoder Beginner Contest 136 简要题解

文章目录ABCDEF差点被ABC的题虐自闭啦传送门A模拟代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace std;inline int read(){ #define gc getchar int ans=0; c...
原创
252阅读
3评论
1点赞
发布博客于 2 年前

洛谷P5396 【模板】第二类斯特林数·列(生成函数+分治ntt/倍增ntt)

传送门给出同阶的n,kn,kn,k要求在O(klog⁡2k)O(k\log^2k)O(klog2k)时间内处理出第二类斯特林数的第kkk列。即求出Sik,0≤i≤nS_{i}^{k},0\le i\le nSik​,0≤i≤n思路:考虑第kkk列斯特林数的生成函数:Sk(x)=∑i=0∞Sikxi=∑i=0∞(Si−1k−1+Si−1kk)xi=kxSk(x)+Sk−1(x)S_k(x...
原创
274阅读
0评论
1点赞
发布博客于 2 年前

洛谷P5393 【模板】下降幂多项式转普通多项式(多项式快速插值)

传送门已知下降幂多项式A(x)=∑i=0naixi‾A(x)=\sum_{i=0}^na_ix^{\underline i}A(x)=∑i=0n​ai​xi​现在求普通多项式B(x)=∑i=0nbixiB(x)=\sum_{i=0}^nb_ix^iB(x)=∑i=0n​bi​xi使得A(x)=B(x)A(x)=B(x)A(x)=B(x)思路:考虑先ffpffpffp转点值,然后快速插值即可...
原创
209阅读
1评论
2点赞
发布博客于 2 年前

圆的反演数学证明

Part0点的反演:本质上是点与点的映射。是一个点(x,y)(x,y)(x,y)根据另一个定点(a,b)(a,b)(a,b)(一般取原点)和一个常数kkk,进行变换得到一个新点(x′,y′)(x&#x27;,y&#x27;)(x′,y′),满足(x,y),(x′,y′),(a,b)(x,y),(x&#x27;,y&#x27;),(a,b)(x,y),(x′,y...
原创
177阅读
0评论
2点赞
发布博客于 2 年前

洛谷P5383 【模板】普通多项式转下降幂多项式(多项式多点求值)

已知普通多项式A(x)=∑i=0naixiA(x)=\sum_{i=0}^na_ix^iA(x)=∑i=0n​ai​xi现在求B(x)=∑i=0nbixi‾B(x)=\sum_{i=0}^nb_ix^{\underline i}B(x)=∑i=0n​bi​xi​使得A(x)=B(x)A(x)=B(x)A(x)=B(x)思路:考虑先多点求值,然后iffpiffpiffp即可求出对应的下降幂多项...
原创
165阅读
0评论
1点赞
发布博客于 2 年前

洛谷P5394 【模板】下降幂多项式乘法(生成函数)

传送门考虑求出如下两个多项式的乘积:A(x)=∑i=0naixi‾,B(x)=∑i=0mbixi‾A(x)=\sum_{i=0}^na_ix^{\underline i},B(x)=\sum_{i=0}^mb_ix^{\underline i}A(x)=∑i=0n​ai​xi​,B(x)=∑i=0m​bi​xi​然后考虑把它们转成点值形式然后乘起来再转回去。设现在F(x)=∑i=0nfix...
原创
146阅读
0评论
1点赞
发布博客于 2 年前

hdu5628 Clarke and math(狄利克雷卷积快速幂)

传送门一眼题。。。注意不能有行末空格233分析一下显然有g=Ik∗fg=I^k*fg=Ik∗f直接上狄利克雷卷积+快速幂即可。。。复杂度O(nlog⁡n2)O(n\log n^2)O(nlogn2)代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int rlen=1...
原创
173阅读
0评论
2点赞
发布博客于 2 年前

LOJ#6397. 「THUPC2018」蛋糕 / Cake(暴力dfs)

传送门思路跟这题一样的。但不能直接用组合数算因为边长不一样。。。于是可以dfsdfsdfs,复杂度O(T∗2n),n≤4O(T*2^n),n\le4O(T∗2n),n≤4,注意要特判边长等于一的情况。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int rlen=1&...
原创
241阅读
0评论
1点赞
发布博客于 2 年前

CSP-S 训练 诚哥的逆袭6(后缀数组)

传送门直接把所有串拼起来跑后缀数组即可。代码:#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<cstdlib>#include<algorithm>#define ri register intusing...
原创
120阅读
0评论
1点赞
发布博客于 2 年前

bzoj4614: [Wf2016]Oil(暴力)

传送门直接暴力O(n2log⁡n)O(n^2\log n)O(n2logn)即可。枚举每个点然后按斜率排序,就变成了一个forforfor循环问题。注意数据与题意不符233333,因为这个调了很久,即不能用斜率为0的直线 NMD代码:#include<bits/stdc++.h>#define ri register int#define fi first#define...
原创
66阅读
0评论
1点赞
发布博客于 2 年前

bzoj3129: [Sdoi2013]方程(容斥+exlucas)

传送门直接2n12^{n1}2n1枚举前面那些强制不满足条件进行容斥。然后发现答案是一个组合数,然而模数可能是合数。。。于是要用exlucasexlucasexlucas代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace st...
原创
46阅读
0评论
1点赞
发布博客于 2 年前

Codeforces 717A. Festival Organization(数列递推+下降幂转化)

传送门这题就是本题的强行二合一。。。先考虑我们有这么一个问题:假设我们知道ai=Axn+Byna_i=Ax^n+By^nai​=Axn+Byn现在要求∑i=lrCaik\sum_{i=l}^rC_{a_i}^k∑i=lr​Cai​k​要求在O(k2log⁡r)O(k^2\log r)O(k2logr)的时间内求出那么Ans=1k!∑i=lraik‾Ans=\frac1{k!}\sum_...
原创
135阅读
0评论
2点赞
发布博客于 2 年前

BJOI2019 简要题解

然而D1T3D1T3D1T3太过毒瘤咕掉了。。。奥术神杖考虑Ans≥∏aikAns\ge \sqrt[k]{\prod a_i}Ans≥k∏ai​​那么对两边同时取自然对数。ln⁡Ans≥1k∑ai\ln Ans\ge \frac 1k\sum a_ilnAns≥k1​∑ai​那么∑ai−Ans≤0\sum a_i-Ans\le0∑ai​−Ans≤0那么上010101分数规划。che...
原创
145阅读
0评论
2点赞
发布博客于 2 年前

Codeforces 1199 简要题解

文章目录A题B题C题D题E题F题比赛传送门A题传送门模拟代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace std;inline int read(){ #define gc getchar int ans=0; c...
原创
231阅读
0评论
1点赞
发布博客于 2 年前

190730 CSP-S 2019 模拟

今天考了一场NOIpNOIpNOIp模拟,然而博主由于太菜又双叒叕爆零啦伤心.jpgball卡空间差评!!!标算n2lognn^2log_nn2logn​拿去跑400040004000不是很清楚想表达什么。。。(难道是CFCFCF的原题???大雾考虑暴力碾标算。我们用一个更加优秀奇怪的复杂度去跑。先把问题转化成求所有三角形最短边的最大值。然后把n22\frac{n^2}22n2​条...
原创
96阅读
3评论
1点赞
发布博客于 2 年前

bzoj5093: [Lydsy1711月赛]图的价值(第二类斯特林数)

跟这题貌似是一样的啊传送门题意:对于一张无向图,它的权值是所有点的权值和,一个点权值是它度数的m 次方,问所有 n 个点简单无向图的权值和。n≤1e9,m≤2e5n ≤ 1e9, m ≤ 2e5n≤1e9,m≤2e5。思路:显然每个点在所有图中的贡献是一样的。于是我们钦定一个点iii并计算它在所有图中的贡献fif_ifi​,这个贡献可以通过枚举它的度来计算:fx=2Cn−12∑i...
原创
46阅读
0评论
1点赞
发布博客于 2 年前

SRM 686 CyclesNumber(斯特林数)

传送门题意:TTT组数据,求所有长度为 n 的置换的循环个数的 m 次方和。T≤300,n≤1e5,m≤300T\le300,n ≤ 1e5,m ≤ 300T≤300,n≤1e5,m≤300。思路:先考虑一个非常简单的想法,我们枚举置换的个数为kkk。那么答案显然等于∑k=1nsnkkm\sum_{k=1}^ns_{n}^kk^m∑k=1n​snk​km然后考虑把kmk^mkm用第二...
原创
102阅读
0评论
1点赞
发布博客于 2 年前

bzoj2159: Crash 的文明世界(树形dp+第二类斯特林数)

传送门题意:给一棵树,边权为 1,对于每个点 i,输出 ∑j=1ndis(i,j)m,n≤50000,m≤500∑_{j=1}^ndis(i, j)^m,n ≤ 50000, m ≤ 500∑j=1n​dis(i,j)m,n≤50000,m≤500思路:考虑对所有的i∈[0,m]i\in[0,m]i∈[0,m]维护∑disi‾\sum dis^{\underline i}∑disi​。然...
原创
83阅读
0评论
1点赞
发布博客于 2 年前

TCO14 CountTables(容斥+第二类斯特林数)

传送门问有多少 n ∗ m 的矩阵,每个数都在 [1, C] 内,任两行不完全相同,任两列不完全相同,n, m, C ≤ 4000。思路:设fif_ifi​表示iii行mmm列的答案。再假设当前有nnn行。考虑先满足任意两列都不一样的限制的方案数,显然应该为CcnmC_{c^n}^mCcnm​中,然后扣掉有一些行相同的情况。我们把相同的行放到一个集合里面,假设最后有kkk个集合,那么...
原创
172阅读
0评论
1点赞
发布博客于 2 年前

HackerRank costly graphs(第二类斯特林数)

传送门题意:对于一张无向图,它的权值是所有点的权值和,一个点权值是它度数的m 次方,问所有 n 个点简单无向图的权值和。n≤1e9,m≤2e5n ≤ 1e9, m ≤ 2e5n≤1e9,m≤2e5。思路:显然每个点在所有图中的贡献是一样的。于是我们钦定一个点iii并计算它在所有图中的贡献fif_ifi​,这个贡献可以通过枚举它的度来计算:fx=2Cn−12∑i=0n−1Cn−1ii...
原创
78阅读
0评论
1点赞
发布博客于 2 年前

CSP-S模拟 火神的鱼(线段树)

传送门考虑到每只鱼只会进网出网一次,于是直接建四棵线段树维护鱼的状态并建一棵树状数组维护答案即可。注意有多组数据代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int rlen=1<<18|1;inline char gc(){ static char b...
原创
178阅读
0评论
2点赞
发布博客于 2 年前

CSP-S模拟 环球巡演(hash表+贪心)

传送门把所有关键点提出来处理,然后分成相邻两个数分别贪心计算答案最后加起来。现在把问题转化成了如下模型:给你一个010101序列,你可以进行如下几种操作(四种操作代价不同):删去一个1删去一个0删去一个1,并允许在其后面删去一个0删去一个0,并允许在其后面删去一个1然后比比四种操作的代价讨论一下即可。代码:#include<bits/stdc++.h>#def...
原创
110阅读
0评论
1点赞
发布博客于 2 年前

CSP-S模拟 电话节(构造)

传送门貌似跟图没啥关系啊。。。随便找出一种生成森林出来,可以通过归纳法证明任意一棵子树最多有一个特殊点没有被匹配。然后就做完啦。代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace std;const int rlen=1&l...
原创
68阅读
0评论
1点赞
发布博客于 2 年前

Codeforces 1197 简要题解

文章目录A题B题C题D题EF题比赛传送门A题传送门排个序然后取a[n−1]−1a[n-1]-1a[n−1]−1与n−2n-2n−2的最小值。代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace std;inline int ...
原创
302阅读
0评论
1点赞
发布博客于 2 年前

2017 ECNA Regional Contest B:Craters (圆的凸包)

传送门题意:给你200200200个圆,让你求出所有圆的凸包。思路:先把圆去重,然后把圆套圆中的小圆给去掉。接着做出圆的两两公切点,丢掉所有在某个圆内部的点,然后做凸包即可。计算长度时要判断是否在一个圆上,如果在上面要判优弧/劣弧,不在就直接加距离。凸包求错导致调了3h3h3h的圆的部分硬是过不了。。。代码:#include<bits/stdc++.h>#defin...
原创
128阅读
0评论
1点赞
发布博客于 2 年前

NOIp训练 [SCOI2019]湖之精灵的游戏(凸包)

传送门吐槽:爆空间的阴影挥之不去。。。题意:一个二维平面上有n个点,第ii个点的坐标是(xi,yi),你要和一位神仙玩游戏。每次神仙会告诉你一个坐标(x,y),连一条经过(0,0),(x,y)的直线,这会把平面分成两个部分A,B 你要选择一个区间[l,r],那么计算的时候只会考虑编号在[l,r]之内的点。一个半平面的价值是这个半平面中,编号在[l,r]范围内的点与(0,0),(x,y)组...
原创
73阅读
0评论
1点赞
发布博客于 2 年前

NOIp训练 [SCOI2019]跳跃游戏(高精度)

传送门吐槽:看到Owenowl说可以用两个long long代替高精???不会啊我tcl。题意:有m个小红球,n个空岛。其中第一个、最后一个空岛以及中间的第k个空岛是固定的(1< k< n)是固定的,其余空岛是悬浮的。一开始所有小红球都在第一个空岛,你的目标是把他们都移动到最后一个空岛,并且使用的步数尽量小。每回合你可以移动一个小红球到它左边或者右边的那个平台,但是有一些限制:...
原创
145阅读
0评论
1点赞
发布博客于 2 年前

LOJ#3160. 「NOI2019」斗主地(打表+组合数学+拉格朗日插值)

传送门然而我这个并不是官方解法网络赛的时候只会303030分的O(n2m)dpO(n^2m)dpO(n2m)dp和O(n3logm)O(n^3log_m)O(n3logm​)的矩乘快速幂。40pts40pts40pts代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int...
原创
601阅读
1评论
1点赞
发布博客于 2 年前

LOJ#3158. 「NOI2019」序列(贪心模拟费用流)

传送门神题,蒟蒻博主只能写O(n4)O(n^4)O(n4)暴力dpdpdp(才不告诉你卡常之后貌似能过40pts40pts40pts呢)40pts40pts40pts代码:#include<bits/stdc++.h>#define ri register intusing namespace std;typedef long long ll;const int rlen...
原创
455阅读
6评论
1点赞
发布博客于 2 年前

NOIp训练 Magic boy Bi Luo with his excited string problem(ac自动机+高斯消元)

传送门题意:给你一堆字母串,现在你从空串开始每次随机一个字母放到空串末尾,直到与某个字母串匹配,问期望步数。数据范围:串数≤15\le15≤15,每个长度≤10\le10≤10。思路:建出所有字母串的ac自动机,然后上面每个节点可以从它的262626个sonsonson那儿转移过来,发现是有环的,上一发高斯消元即可。代码:#include<bits/stdc++.h>#...
原创
69阅读
0评论
1点赞
发布博客于 2 年前

NOIp训练 序列生成(ac自动机+数位dp)

传送门题意:有一个生成正整数序列的机器,给出一些数字串,包含操作码的数字都不会被生成,剩余的数字都会被生成,多次询问这个串的第kkk个数,保证答案在intintint范围内。串数≤10\le10≤10,数字字串长度不超过101010,最多100100100次询问。思路:做法比较显然每次二分答案vvv,然后用acacac自动机辅助数位dpdpdp转移求出1,2,...,v1,2,...,...
原创
68阅读
0评论
1点赞
发布博客于 2 年前

bzoj1212: [HNOI2004]L语言(ac自动机)

传送门思路:对单词建出acacac自动机。然后每次用文章去匹配的时候我们暴力枚举当前点在failfailfail树上的所有祖先看是否有已经可以匹配的即可。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int rlen=1<<18|1;inline cha...
原创
68阅读
0评论
1点赞
发布博客于 2 年前

NOIp训练 红绿色盲ldxcaicai(bit套主席树)

传送门然而就是我把数颜色的数据加强了一下。。。数据范围:n,m≤200000,ai≤1000000n,m\le200000,a_i\le1000000n,m≤200000,ai​≤1000000而且还可以强制在线。。。反正带修莫队是凉掉了。正解是bitbitbit套主席树。考虑用把每个位置上颜色出现的上一个位置作为下标插入到主席树中,然后答案就可以差分出来。再套上bitbitbit就...
原创
131阅读
0评论
1点赞
发布博客于 2 年前

LOJ#3159. 「NOI2019」弹跳(四分树+dijkstra)

传送门n2n^2n2暴力显然,考虑优化。有一种想法是使用四分树/kd-tree/树套树,发现你并不能得到100pts100pts100pts的好成绩(空间会炸掉)考试的时候比较智熄,先暴力四分树建边然后跑dijkstra,于是动态内存炸了。。。88pts88pts88pts滚粗。那剩下那12pts12pts12pts如何拿呢?我们考虑只用四分树加入点,这样的空间开销仅有O(nlogn)O...
原创
220阅读
0评论
1点赞
发布博客于 2 年前

NOIp训练 [SCOI2019]RGB(容斥原理)

传送门题意:有一棵树,n个节点,每条边有边权ci,每个点的颜色为R,G,B三种颜色之一(R为红色,G为绿色,B为蓝色)你要统计有序对(U,V)的数量,其中U,V是两个点集它还需要满足以下条件:1、U和V都必须是连通的2、U的颜色只能是红色或者绿色,V的颜色只能是绿色或者蓝色3、存在一个U,V均包含的点x,使得对于所有在U,V集合中的点y,有dis(x,y)≤w答案对10^9+7取模...
原创
214阅读
0评论
1点赞
发布博客于 2 年前

NOIp训练 [SCOI2018]Tree(链分治)

传送门题意:给一棵带点权的树,要求支持如下操作:询问从 U 出发的简单路径,经过的点权值之和的最大值将 U 的权值修改为 V空间限制64MB思路:你可以使用一种叫做点分树的无脑方法,然后用short+charshort+charshort+char拼34\frac3443​个intintint可以通过这一道题。 毕竟毒瘤出题人卡了空间你显然也可以上lctlctlct搞。博主懒...
原创
161阅读
0评论
2点赞
发布博客于 2 年前

bzoj4698: Sdoi2008 Sandy的卡片(二分答案+后缀数组)

传送门听说数据水???其实这题更水好吧题意:求nnn个数字串的最长公共子串长度。两个子串相同的定义为:两个子串长度相同且一个串的全部元素加上一个数就会变成另一个串思路:假如没有那个定义,把所有字符串拼在一起建一个SASASA,中间用特殊字符连接,然后二分答案+双指针checkcheckcheck就完了。 废话现在考虑如何转化相等这个条件。假设两个串为a1,a2,...,aka_1...
原创
42阅读
0评论
1点赞
发布博客于 2 年前

NOIp训练 子串查找VII(树剖+ac自动机+dfs序+bit套主席树)

传送门题意:有一棵nnn个点的无根树,第iii个点上有一个字符串sis_isi​作为编号和一个权值viv_ivi​,现在有mmm次强制在线的询问/修改。询问:给出一个字符串SSS和一条路径(u,v)(u,v)(u,v),路径上iii点的贡献是sis_isi​在SSS中出现次数*viv_ivi​,问总贡献。时间复杂度:O(nlogn3),∑∣si∣,∑∣S∣,n,mO(nlogn^3),\s...
原创
83阅读
0评论
1点赞
发布博客于 2 年前

LOJ#3156. 「NOI2019」回家路线(前缀和优化建图+for循环+凸包)

传送门来一发大常数做法(然而网络赛的时候凸包插点的方向写反了。。。40pts40pts40pts滚了什么我居然还有40)对于一条边(u,v,p,q)(u,v,p,q)(u,v,p,q),我们把二元组(v,q)(v,q)(v,q)看成一个点。这样下来一共有mmm个点。假设每个点对应有len1ilen1_ilen1i​个二元组(i,val1i,j)(i,val1_{i,j})(i,val1i,...
原创
139阅读
0评论
1点赞
发布博客于 2 年前

bzoj4498: 魔法的碰撞(dp+组合数学)

传送门思路:考虑理想情况,所有魔法师的区间都不相交,那么总长度减去所有区间长度即为多余格子数,可以直接组合计数了。然而,事实上,对于2个相邻的区间,不妨假设左边的区间更小,那么两个区间之间就有【左边区间的右半部分】的格子可以重叠。因此,相应的长度就可以作为额外的多余格子。于是问题转化为统计每个多余格子数目分别对应了多少种排列。考虑DP。由于额外的多余的格子取决于两个相邻区间的大小,所以...
原创
88阅读
0评论
1点赞
发布博客于 2 年前

SRM 548 div1 KingdomAndCities(补集转化+分类讨论)

传送门m=0m=0m=0的情况就是一个补集转化,用个O(n2k2)O(n^2k^2)O(n2k2)的dpdpdp即可。m=1,2m=1,2m=1,2的情况分类讨论即可。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int N=105;typedef long long...
原创
47阅读
0评论
1点赞
发布博客于 2 年前

SRM 597 div1 LittleElephantAndBoard(组合数学)

传送门不考虑方向,发现RB,BG,GRRB,BG,GRRB,BG,GR的个数是确定的。设个数为x,y,zx,y,zx,y,z,种类为a,b,ca,b,ca,b,c。现在问题转化成有mmm个格子,有xxx个aaa,yyy个bbb,zzz个ccc。相邻的格子不能放相同的问种类数。这个显然可以用组合计数处理。代码:#include<bits/stdc++.h>#define ...
原创
92阅读
0评论
1点赞
发布博客于 2 年前

bzoj4402: Claris的剑(组合数学)

传送门思路:考虑怎么才不会算重。显然你的序列可以变化成:1 2 1 2....x x+1 x x+1...max1\ 2\ 1\ 2....x\ x+1\ x\ x+1...max1 2 1 2....x x+1 x x+1...max和1 2 1&n...
原创
45阅读
0评论
1点赞
发布博客于 2 年前

51nod1806 wangyurzee的树(容斥原理+prufer序列)

传送门思路:把关于度数的限制放到prufer序列上。发现可以容斥一波。我们强制一些点一定不满足限制,然后记得特判一个点被加了多个限制的情况。然后就是简单的组合计数。我才不会告诉你我因为阶乘逆元预处理错了wa了十几次呢代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se...
原创
39阅读
0评论
1点赞
发布博客于 2 年前

bzoj4596: [Shoi2016]黑暗前的幻想乡(容斥原理+矩阵树定理)

传送门思路:傻子题。直接容斥+矩阵树定理算即可。。。代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace std;const int rlen=1<<18|1;inline char gc(){ static ...
原创
46阅读
0评论
1点赞
发布博客于 2 年前

SRM 558 div1 Ear(前缀和预处理+枚举)

传送门傻子题。枚举两个蓝点然后二分出可行的红点范围。再加一个前缀和预处理优化一下即可。时间复杂度O(n2logn)O(n^2log_n)O(n2logn​) 我也不知道为啥原题数据范围是300代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing ...
原创
90阅读
0评论
1点赞
发布博客于 2 年前

SRM 555 div1 MapGuessing(容斥原理)

传送门考虑枚举每个点作为起点,然后状压序列中的哪些位置可以在初始取任意值。假设有kkk个位置,那么这种状态的贡献为2k2^k2k。但这样同一个状态会被算重。于是我们考虑容斥来算。注意剪枝。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;typedef long long ll;...
原创
53阅读
0评论
1点赞
发布博客于 2 年前