cz_xuyixuan的博客

当我跨过沉沦的一切,向永恒开战的时候,你是我的军旗。

【BZOJ3670】【UOJ5】【NOI2014】动物园

【题目链接】BZOJUOJ【思路要点】做两次KMP,第一次求出Next数组,第二次保证匹配位数不超过当前串的一半(否则视为失配),求出Num数组。时间复杂度\(O(NL)\)。【代码】#include<bits/stdc++.h> using names...

2018-02-28 20:04:08

阅读数:40

评论数:0

【BZOJ3669】【UOJ3】【NOI2014】魔法森林

【题目链接】BZOJUOJ【思路要点】对边的权值\(A\)排序,依次加入图中,用LinkCutTree维护权值\(B\)的最小生成树。时间复杂度\(O(MLogN)\)。【代码】#include<bits/stdc++.h> using namespac...

2018-02-28 18:26:04

阅读数:48

评论数:0

【BZOJ3668】【UOJ2】【NOI2014】起床困难综合症

【题目链接】BZOJUOJ【思路要点】从高位向低位贪心即可,遵从“使答案最大的情况下花费最小”的原则。时间复杂度\(O(NLogM)\)。【代码】#include<bits/stdc++.h> using namespace std; const int...

2018-02-28 18:15:29

阅读数:59

评论数:0

【BZOJ3295】【CQOI2011】动态逆序对

【题目链接】点击打开链接【思路要点】树套树空间不够,所以CDQ分治就行了。时间复杂度\(O(MLog^2N)\)。【代码】#include<bits/stdc++.h> using namespace std; #define MAXN 100005 ...

2018-02-28 14:38:22

阅读数:36

评论数:0

【BZOJ3816】【UOJ41】【清华集训2014】矩阵变换

【题目链接】BZOJUOJ【思路要点】首先我们需要了解一下“稳定婚姻问题”。给出\(N\)个男孩,\(N\)个女孩。每个男孩对所有女孩有一个序关系,表示他对女孩的喜好程度。每个女孩也对所有男孩有一个序关系,表示她对男孩的喜好程度。定义一个稳定匹配为满足下列性质的完备匹配:不存在一个男孩和一个女孩,...

2018-02-28 14:27:41

阅读数:101

评论数:0

【BZOJ3697】采药人的路径

【题目链接】点击打开链接【思路要点】点分治,把黑点当-1,白点当1,同一根节点处的两条链能够拼成一条合法路径当且仅当它们权值相加为0且至少其中一条路径经过过两次自己的权值。时间复杂度\(O(NLogN)\)。【代码】#include<bits/stdc++.h&amp...

2018-02-28 12:59:26

阅读数:46

评论数:0

【BZOJ3815】【UOJ40】【清华集训2014】卡常数

【题目链接】BZOJUOJ【思路要点】加密方式对实数是单调的,可以通过二分来解密。然后,大概就是一道KD-Tree基础题了。由于数据随机,并不需要加入替罪羊树式的重构,直接暴力插入即可。时间复杂度\(O(M\sqrt{N})\)。【代码】#include<bits/stdc+...

2018-02-28 12:50:18

阅读数:130

评论数:0

【BZOJ2599】【IOI2011】Race

【题目链接】点击打开链接【思路要点】点分治模板题。时间复杂度\(O(NLogN+K)\)。【代码】#include<bits/stdc++.h> using namespace std; #define MAXN 200005 #define MAXK...

2018-02-28 09:05:53

阅读数:35

评论数:0

【BZOJ3814】【UOJ39】【清华集训2014】简单回路

【题目链接】BZOJUOJ【思路要点】直接进行\(Q\)次基于连通性的动态规划可以获得60分。注意到一定需要经过的边只有竖直的,而没有水平的。我们可以在完成一行的动态规划时顺便记录在第1行到第\(i\)行的区域中,第\(i\)行的插头为\(Mask\)的方案数以及第\(i\)行到第\(N\)行的区...

2018-02-28 08:45:53

阅读数:83

评论数:0

【BZOJ1233】【Usaco2009 Open】干草堆tower

【题目链接】点击打开链接【思路要点】有这样一个性质:对于最顶部的一些列干草堆,一定存在一种最优方案既满足高度最高,又满足底边最短。由这个性质,DP即可。DP转移可以被单调队列优化。时间复杂度\(O(N)\)。【代码】#include<bits/stdc++.h&amp...

2018-02-27 13:54:46

阅读数:83

评论数:0

【BZOJ3812】【UOJ37】【清华集训2014】主旋律

【题目链接】BZOJUOJ【思路要点】我们希望求出使得图强联通的边集数,这等价于求出所有边集数减去使得图不强连通的边集数。首先考虑一种非常暴力的做法,我们枚举最终的图缩点后的情况。那么,剩下的图必须是一个DAG,我们希望求出这张图在是DAG的情况下可行的边集数,并与每一个强连通分量加边方案数相乘,...

2018-02-27 13:37:25

阅读数:120

评论数:0

【BZOJ1293】【SCOI2009】生日礼物

【题目链接】点击打开链接【思路要点】对于一个左端点\(i\),设最小的合法右端点为\(F_i\)。显然,\(F_i\)是单调不减的,用Two Pointers计算可能的\(F_i\)即可。时间复杂度\(O(NLogN)\)。【代码】#include<bits/stdc++.h...

2018-02-27 10:02:57

阅读数:38

评论数:0

【BZOJ3813】【UOJ38】【清华集训2014】奇数国

【题目链接】BZOJUOJ【思路要点】首先,有一个直观的做法是对每一个质因子维护一棵树状数组,记录区间中该质因子指数的和。询问时先将\(product\)质因数分解的结果求出来,再用快速幂计算欧拉函数。时间复杂度是\(O(60NLogN)\),可以在UOJ上通过,但在BZOJ上会超时。进一步考虑,...

2018-02-27 09:55:19

阅读数:101

评论数:0

【BZOJ3160】万径人踪灭

【题目链接】点击打开链接【思路要点】枚举对称中心,设关于该中心对称点的个数为\(x\),以该点为中心的最长回文子串长度为\(y\),那么该点对答案的贡献应为\(2^x-\lfloor\frac{y+1}{2}\rfloor\)。其中对称点的个数可以通过FFT或bitset压位求出,最长回文子串长度...

2018-02-26 16:35:18

阅读数:45

评论数:0

【BZOJ3811】【UOJ36】【清华集训2014】玛里苟斯

【题目链接】BZOJUOJ【思路要点】首先,数集\(\{A,B\}\)等价于数集\(\{A,A\ Xor\ B\}\),且数集\(\{A,0\}\)等价于\(\{A\}\)。因此,我们可以先构建原数集的线性基,并删去多余的0。令\(M\)为线性基的元素个数,则\(M\)是\(O(LogMax\{a...

2018-02-26 16:17:04

阅读数:74

评论数:0

【CodeForces】CodeForces Round #466 (Div. 2) 题解

【比赛链接】点击打开链接【题解链接】点击打开链接【A】Points on the line【思路要点】枚举最后的区间,用前/后缀和计算区间外的点数。时间复杂度\(O(N+Max\{x_i\})\)。【代码】#include<bits/stdc++.h> ...

2018-02-26 10:24:08

阅读数:60

评论数:0

【BZOJ2152】聪聪可可

【题目链接】点击打开链接【思路要点】点分治模板题。时间复杂度\(O(NLogN)\)。【代码】#include<bits/stdc++.h> using namespace std; #define MAXN 200005 struct edge {i...

2018-02-25 16:23:15

阅读数:60

评论数:0

【UOJ311】【UNR #2】积劳成疾

【题目链接】点击打开链接【思路要点】笛卡尔树DP,记\(F_{i,j}\)表示长度为\(i\)的区间中所有数的最大值小于等于\(j\),所有方案的贡献之和。考虑枚举区间最大值第一次出现的位置,则有:\(F_{i,j}=F_{i,j-1}+\sum_{pos=1}^{i}w_j^{min(pos,i...

2018-02-25 16:16:14

阅读数:76

评论数:0

【BZOJ3790】神奇项链

【题目链接】点击打开链接【思路要点】用Manacher算法求出每个字符为中心的极长回文子串,显然,选取更短的回文子串不会使答案更优。因此,问题转化成了“有若干个区间,至少选取多少个才能使它们的并是\([1,N]\)”。用线段树优化DP即可。时间复杂度\(O(NLogN)\)。【代码】#includ...

2018-02-25 14:22:55

阅读数:66

评论数:0

【BZOJ2658】【ZJOI2012】小蓝的好友(mrx)

【题目链接】点击打开链接【思路要点】求解不含资源点的矩形个数,用总共的矩形个数减之,得到答案。考虑扫描线,从上至下枚举矩形的下边界,记每一个横坐标\(x\)的资源点最近一次出现在\((x,Depth_x)\)处。维护一棵笛卡尔树(Treap),使得父节点的\(Depth\)始终大于子节点的\(De...

2018-02-25 14:12:23

阅读数:78

评论数:0

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