- 博客(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>...
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关注的人