自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

EM LGH

It's Time to Make History

  • 博客(46)
  • 收藏
  • 关注

原创 CF380C Sereja and Brackets 括号序列+线段树

你可以手画一下,然后发现求的其实就是 $[l,r]$ 区间内合法序列匹配个数.用线段树维护一下括号序列就可以了.code:#include <bits/stdc++.h> #define N 1000005 #define ll long long #define lson now<<1 #define rson now&l...

2020-02-29 21:46:00 201

原创 CF1117G Recursive Queries 单调栈+线段树

显然先用单调栈求出一个位置向左/右延申的最大长度(即这些区间中当前位置是最大值位置) 然后我们发现我们可以离线,然后按照最大值位置依次添加线段,每次用线段树查一个区间和. 然后我们想查满足最大值位置在 $[l,r]$ 之间,$[l,r]$ 内区间和. 这个显然满足可减性(即最大值位置在 $[1,r]$ 减最大值位置在 $[1,l-1]$) code:#in...

2020-02-29 17:41:00 114

原创 Codeforces Round #556 (Div. 1)

A Prefix Sum Primes显然,除了 2 以外的质数都是奇数,所以最优的排布方式应该是 21222222.... 然后 2 不够的时候再放 1code:#include <bits/stdc++.h> #define N 200009 #define setIO(s) freopen(s".in","r",stdin) using na...

2020-02-29 15:22:00 89

原创 LOJ #2878. 「JOISC 2014 Day2」邮戳拉力赛 动态规划+括号序列

神题呀,我们观察到行走的方式一定是一条链+若干条环.然后环可以看成是一对括号,所以来一个基于括号序的 DP.code:#include <bits/stdc++.h> #define ll long long #define N 3040 #define setIO(s) freopen(s".in","r",stdin) using nam...

2020-02-28 23:30:00 236

原创 LOJ #2877. 「JOISC 2014 Day2」交朋友 并查集+BFS

这种图论问题都挺考验小思维的. 首先,我们把从 $x$ 连出去两条边的都合并了.然后再去合并从 $x$ 连出去一条原有边与一条新边的情况.第一种情况直接枚举就行,第二种情况来一个多源 bfs 即可.code:#include <cstdio> #include <string>#include <vector>#incl...

2020-02-28 17:23:00 349

原创 LOJ #2831. 「JOISC 2018 Day 1」道路建设 线段树+Link-cut-tree

用 LCT 维护颜色相同连通块,然后在线段树上查一下逆序对个数就可以了.code:#include <cstdio> #include <algorithm> #include <cstring> #include <string> #define N 100005 #define ll long long...

2020-02-28 16:46:00 315

原创 LOJ #2876. 「JOISC 2014 Day2」水壶 BFS+最小生成树+倍增LCA

非常好的一道图论问题.显然,我们要求城市间的最小生成树,然后查询路径最大值. 然后我们有一个非常神的处理方法:进行多源 BFS,处理出每一个城市的管辖范围. 显然,如果两个城市的管辖范围没有交集的话连边一定不是优秀的(一定会有一种都在管辖范围之内的连边方式来代替这种连边方式) 然后由于每一个点只属于一个城市的管辖范围,所以每个点只会扩展一次,这个 BFS 的...

2020-02-28 09:20:00 307

原创 BZOJ 4247: 挂饰 动态规划

按照挂件数量排序,然后做一个 DP 就好了.code:#include <bits/stdc++.h> #define ll long long #define N 2003 #define setIO(s) freopen(s".in","r",stdin) using namespace std;ll f[N]; str...

2020-02-28 00:22:00 105

原创 BZOJ 4239: 巴士走读 最短路

显然,我们可以将询问按照规定时间从小到大排序,依次处理. 那么我们显然要求合法的点中从 $n$ 号点出发到达点 $i$ 的最迟时间,我们令这个为 $f[i]$而 $f[i]$ 显然可以用最短路来求.如果求 $n$ 次最短路的话显然超时,但是我们可以对于每一个节点所连边排序,然后每次枚举之前没有扩展过的边.这样就能保证每条边恰好被扩展一次,时间复杂度正确.co...

2020-02-28 00:01:00 122

原创 LOJ #3119. 「CTS2019 | CTSC2019」随机立方体 组合计数+二项式反演

好神的一道计数题呀.code:#include <cstdio> #include <algorithm> #include <cstring> #define N 5000003 #define ll long long #define mod 998244353 #define setIO(s) freopen...

2020-02-27 22:41:00 126

原创 BZOJ 4238: 电压 DFS树

分类讨论一下奇环和偶环的情况.code:#include <bits/stdc++.h> #define N 200006 #define setIO(s) freopen(s".in","r",stdin) using namespace std; int edges=1; int hd[N],to[N<<1],nex[N<<...

2020-02-25 22:26:00 163

原创 LOJ #6402. yww 与校门外的树 多项式求逆

蛮神的一道题.code:#include <cmath>#include <cstring>#include <algorithm>#include <cstdio>#include <string>#define ll long long#define ull unsigned long longusin...

2020-02-25 15:19:00 112

原创 luoguP5219 无聊的水题 I 多项式快速幂

有一个幼儿园容斥:最大次数恰好为 $m=$ 最大次数最多为 $m$ - 最大次数最多为 $m-1$.然后来一个多项式快速幂就好了.code:#include <cmath>#include <cstring>#include <algorithm>#include <cstdio>#include <stri...

2020-02-24 22:04:00 119

原创 2020省选模拟训练1 排列(perm)多项式exp+EGF

这道题真的还是简单的一批..... 我当时要是参加考试的话该多好(凭这一道题就能进前 5 了)十分显然的指数型生成函数.令 $f[i]$ 表示有 $i$ 个点的答案.然后显然有 $f[i]=\sum_{j=1}^{i}\binom{i}{j} \times \frac{j!}{j} \times f[i-j]$然后这个就是一个 EGF 的形式.令 $A(x)$...

2020-02-24 10:50:00 264

原创 luoguP5445 [APIO2019]路灯 树套树+set

code:#include <vector> #include <cstdio> #include <cstring>#include <map> #include <set>#include <algorithm> #define N 300005 #define MAX 320005 ...

2020-02-15 17:14:00 145

原创 luoguP5444 [APIO2019]奇怪装置 数论+贪心

本题的关键在于求循环节.如果能想到从循环节入手的话这道题还是比较友好的. code:#include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #define ll long long #define N 1000...

2020-02-15 10:16:00 102

原创 Comet OJ - Contest #2

Acode:#include <cstdio> #include <algorithm> #define N 1000000 #define ll long long #define setIO(s) freopen(s".in","r",stdin) using namespace std; ll f[N],g[N]; i...

2020-02-14 22:31:00 100

原创 luoguP6070 [MdOI2020] Decrease 贪心+二维差分

显然从左到右,从上到下依次处理每个格子步数是最少的. 而由于我们的顺序是固定的,每次操作等于是一个区间修改,单点查询.利用二维差分的方式可以轻松实现.code:#include <cstdio> #include <cstring> #include <string> #include <vector&gt...

2020-02-13 16:37:00 135

原创 luoguP6071 [MdOI2020] Treequery DFS序+主席树

思路自然的码农题. 显然分类讨论一下编号在 $[l,r]$ 的点与 $p$ 的子树关系. 如果都在 $p$ 的子树内就是个区间 $lca$.否则,就二分第一个满足 $p$ 的祖先且子树内部没有 $[l,r]$ 之间的点. 二分验证的话要用主席树.code:#include <cstring> #inclu...

2020-02-13 15:42:00 105

原创 AT2064 [AGC005F] Many Easy Problems 容斥+NTT

这个题的容斥思路还是非常巧妙的.code:#include <cstdio> #include <cstring> #include <cmath> #include <vector> #include <algorithm> #define ll long long #define N ...

2020-02-13 10:51:00 95

原创 BZOJ 4650: [Noi2016]优秀的拆分 后缀自动机+启发式合并+线段树合并

将问题转化为统计以 $i$ 结尾的 $AA$ 串个数. 我们将后缀树建出来,然后按照启发式合并的方式每次合并两个 $endpos$ 集合. 那么就有:$[x-mx,x-1] \rightarrow x$ 与 $x \rightarrow [x+1,x+mx]$ 的贡献. 统计第一种贡献的话在线段树上区间查询就行. 第二种贡献的话要在线段树上维护一个 lazy...

2020-02-12 16:58:00 136

原创 BZOJ 1498: [NOI2006]神奇的口袋 性质分析+高精度

我们发现我们可以直接让 $x_{i}=i$,然后模拟就行了.code:#include <cstdio> #include <cstring> #include <cmath> #include <vector> #include <map> #include <algorithm> ...

2020-02-11 15:57:00 99

原创 BZOJ 1819: [JSOI]Word Query电子字典 搜索+trie

用 trie 搜索一下就好了.code:#include <bits/stdc++.h> #define N 10008 #define setIO(s) freopen(s".in","r",stdin) using namespace std; char S[24]; int trie[N*20][27],visx[N],p[N*20],...

2020-02-11 11:07:00 114

原创 BZOJ 1806: [Ioi2007]Miners 矿工配餐 动态规划

滚动数组推一下就行.code:#include <bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) using namespace std; int dp[2][4][4][4][4],n; char s[100004]; int sub(int s) { if(s=='...

2020-02-11 10:24:00 113

原创 BZOJ 1222: [HNOI2001]产品加工 动态规划

这种多线程问题可以采用一维枚举,另一位用 dp 求解最优解来实现.这道题和那个 ZJOI 的食堂排队的题挺像的.code:#include <bits/stdc++.h> #define ll long long #define inf 0x3f3f3f3f #define N 508000 #define setIO(s) freo...

2020-02-11 10:06:00 123

原创 BZOJ 1037: [ZJOI2008]生日聚会Party 动态规划

code:#include <cstdio> #include <cstring> #include <algorithm> #define ll long long #define MAXN 160 #define MAXK 20 #define mod 12345678 #define setIO(s) freope...

2020-02-10 21:35:00 94

原创 luoguP5161 WD与数列 后缀自动机+线段树合并+启发式合并

第一次写这个题是好长时间以前了,然后没调出来. 本来以为是思路错了,结果今天看题解发现思路没错,但是好多代码细节需要注意.code:#include <cstdio>#include <vector> #include <map> #include <cstring>#include <algo...

2020-02-09 15:27:00 106

原创 Codeforces Round #539 (Div. 1)

A - Sasha and a Bit of Relaxcode:#include <cstdio>#include <map> #include <cstring>#include <algorithm>#define N 300006 #define ll long long #define setIO(s) f...

2020-02-07 21:25:00 86

原创 BZOJ 4371: [IOI2015]sorting排序 二分+贪心

思路很巧妙啊code:#include <cstdio> #include <cstring>#include <algorithm> #define ll long long #define N 1000009 #define setIO(s) freopen(s".in","r",stdin) using namesp...

2020-02-06 16:42:00 197

原创 BZOJ 4369: [IOI2015]teams分组 单调栈+主席树

这个题的思路还是十分巧妙的.我们发现我们要查询的区域恰好构成了一个梯形.然后用那个单调栈去维护折线,并用主席树做二维数点.code:#include <cstdio> #include <algorithm> #include <stack> #include <cstring> #include <vec...

2020-02-06 15:44:00 294

原创 BZOJ 4370: [IOI2015]horses马 线段树+贪心+对数

显然如果卖出的话肯定要在同一天卖出.那么我们只需维护 $max(y_{i}\prod x_{i})$ 即可.乘法维护不了,取一个对数就好了.code:#include <cstdio> #include <cmath>#include <cstring>#include <algorithm> #define ...

2020-02-05 14:37:00 178

原创 luoguP5824 十二重计数法 (12合一)

12种组合计数问题合在一起. code:#include <cmath>#include <cstring>#include <algorithm>#include <cstdio>#include <string>#define ll long long#define ull unsigned long ...

2020-02-04 15:04:00 333

原创 luoguP5824 十二重计数法 组合+生成函数+第二类斯特林数

12种组合计数问题合在一起. code:#include <cmath>#include <cstring>#include <algorithm>#include <cstdio>#include <string>#define ll long long#define ull unsigned long ...

2020-02-04 15:04:00 110

原创 BZOJ 5296: [Cqoi2018]破解D-H协议 BSGS

模板题呀.code:#include <cstdio> #include <cstring> #include <cmath> #include <map> #include <algorithm> #define ll long long #define setIO(s) ...

2020-02-04 10:12:00 111

原创 BZOJ 2242: [SDOI2011]计算器 BSGS

这里讲一下普通的 BSGS 如何实现: 我们要求解形如 $y^x \equiv z(\mod p)$ 的 $x$ 的整数解(其中 $gcd(y,p)=1$) 我们将 $x$ 写成 $am-b$ 的形式,原式就变为 $y^{am} \equiv z \times y^b (\mod p)$ 然后 $b<m$,可以枚举右面所有的取值,然后再枚举左面,整个时间复杂度是...

2020-02-04 09:47:00 96

原创 BZOJ 1016: [JSOI2008]最小生成树计数 矩阵树定理+kruskal

这道题很巧妙啊. 有两个性质:1.一个图的最小生成树的每种边权数量是相等的.2.有 1 得,如果任意一个最小生成树中边权为 $v$ 的边都断掉,$(x,y)$ 连通性在任意 MST 中都相等. 所以我们的做法就是先求出最小生成树,然后分别将每种边权 $v_{i}$ 从最小生成树中都断掉,得到若干联通块,将联通块看作点,再将所有边权为 $v_{i}$ 的重新连回去,跑...

2020-02-03 23:03:00 158

原创 BZOJ 3534: [Sdoi2014]重建 矩阵树定理+概率

矩阵树定理求的是 $\sum_{E} \prod_{e \in E} w(e)$平时我们求的大多数是方案数,所以就默认那个 $w(e)$ 是 $1$.而如果我们想求所有生成树权值之和的话就让那个 $w(e)$ 变成边权. 我们在设置最开始的那个 (度数-邻接)矩阵的时候度数矩阵中 $S1_{i,i}$ 保留与 $i$ 点相连所有边之和.然后 $S2_{i,j}$ ...

2020-02-03 21:29:00 109

原创 BZOJ 1002: [FJOI2007]轮状病毒 高精度

有规律:$f[n]=3 \times f[n-1]-f[n-2]+2$.由于没有模数,所以需要写一个高精度,这里直接套用的 FFT 板子.code:#include <cstdio>#include <cmath>#include <cstring>#include <algorithm>#define ll long...

2020-02-03 20:15:00 83

原创 BZOJ 4596: [Shoi2016]黑暗前的幻想乡 矩阵树定理+容斥

求生成树方案的话要用矩阵树定理,然后这个容斥就是常见套路了吧.code:#include <cstring>#include <cstdio>#include <vector> #include <algorithm>#define N 18 #define mod 1000000007 #d...

2020-02-03 19:10:00 100

原创 BZOJ 4894: 天赋 矩阵树定理

code:#include <cstring>#include <cstdio>#include <algorithm>#define N 303 #define mod 1000000007 #define ll long long#define setIO(s) freopen(s".in","r",stdin)...

2020-02-03 17:57:00 97

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除