复杂度分析
Vectorxj
这个作者很懒,什么都没留下…
展开
-
HDU 5762 [简单复杂度分析]
DescriptionDescription给定nn个点,求是否存在两对点曼哈顿距离相等。 0≤xi,yi≤1050\le x_i,y_i\le 10^5SolutionSolution曼哈顿距离的个数应该也是O(n)O(n)的啦。。。#include <bits/stdc++.h> using namespace std;const int N = 201010;inline char get(原创 2017-09-25 18:39:56 · 356 阅读 · 0 评论 -
CF 438D The Child and Sequence [线段树]
DescriptionDescription有一个序列要求支持区间求和,单点加,区间取膜。SolutionSolution一个数膜比他小的数一定会减小至少一半。 所以就是O(nlog2n)O(nlog^2n)的。#include <bits/stdc++.h> using namespace std;const int N = 101010; typedef long long ll;inline原创 2017-09-27 18:05:18 · 395 阅读 · 0 评论 -
[线段树][简单复杂度分析]LOJ#6029. 「雅礼集训 2017 Day1」市场
DescriptionDescription要求支持区间整除一个正整数,区间加,区间询问最小值,区间求和。SolutionSolution就是复杂度分析吧。。 和以前一道区间开根号的题差不多吧。。 好菜啊。只会做水题了。。#include <bits/stdc++.h> using namespace std;const int N = 101010; const long long INF =原创 2017-10-14 08:12:46 · 648 阅读 · 0 评论 -
[博弈论][凸包][复杂度分析] SRM 597 Div1 Medium ConvexPolygonGame
SolutionSolution 设WiW_i为第ii次操作后可以得到的凸多边形的集合。 显然有Wi⊆Wj,i>jW_i\subseteq W_j,i\gt j。 所以如果最开始不能操作则先手必败,否则先手必胜。 问题就在于判断凸多边形中是否存在三点不共线。 暴力判断是O(X2)O(X^2)的。 转化成任意三点共线,这样的点数不超过max(maxX−minX,maxY−minY)max原创 2018-01-07 20:42:12 · 413 阅读 · 0 评论 -
[回文自动机] BZOJ 3676: [Apio2014]回文串
SolutionSolution 回文自动机有很多性质是和后缀自动机很相似的。 这个题可以类似于SAM,在每个节点uu维护一个righturight_u。答案就是max{|rightu|∗lenu}max\{|right_u|*len_u\} 关于回文自动机的复杂度,可以势能分析。 #include using namespace std; const int N = 303030;原创 2018-01-08 11:15:21 · 331 阅读 · 0 评论 -
[回文自动机][树形DP] CodeChef PALPROB
SolutionSolution 建出回文自动机,每个节点再维护一个halfuhalf_u指针,指向长度不超过⌊lenu2⌋\lfloor{len_u\over2}\rfloor的最长回文后缀。 树形DP出每个点的nessness表示回文指数,答案就是∑nessu∗|rightu|\sum ness_u*|right_u|。 failfail链上的节点的lenvlen_v一定是递减的。可以倍原创 2018-01-09 11:41:53 · 340 阅读 · 0 评论 -
[容斥原理][复杂度分析] SRM 555 Div1 Hard MapGuessing
SolutionSolutionSolution 可以枚举磁头的初始位置,计算出哪些地方是可以随便赋0/10/10/1的。 但这样一个初始序列可能会被多个磁头满足。就要用容斥去重。ans=∑T⊆S(−1)|T|+12|P|P=⋂R⊆TRans=∑T⊆S(−1)|T|+12|P|P=⋂R⊆TRans=\sum_{T\subseteq S}(-1)^{|T|+1}2^{|P|}\\P=\bigca...原创 2018-01-06 09:42:37 · 429 阅读 · 0 评论