时间复杂度
616156
赛高______↑
展开
-
【分块】【FFT】CodeChef COUNTARI Arithmetic Progressions
分析:主要就是分块。。。首先,假设我们将原序列分为k块,对于任意一个三元组,如果三个都在同一个块内,或者两个在一个块内,都可以在O(Nk×Nk×k)=O(N2K)O(Nk×Nk×k)=O(N2K)O(\frac N k \times \frac N k\times k)=O(\frac {N^2} K)的复杂度内解决。现在考虑只有三个值在不同的块的情况。这样对于同一个块,可以把...原创 2018-06-24 22:59:57 · 229 阅读 · 0 评论 -
【时间复杂度】Codeforces990E Post Lamps
题意:在一个区间[0,n](注意是区间!)中,放入一些线段使得其能够覆盖所有位置。 放入线段的长度存在一个最大值lmaxlmaxl_{max},对于每一个lxlxl_x,都有相应的花费。放入线段的规则是,如果在第i处放入长为lxlxl_x线段,能够覆盖[i,i+lxlxl_x]。 有k个位置不能放。并且只能使用同一种长度的线段。求最小花费分析:这又是那个恶心的式子:...原创 2018-06-17 17:41:05 · 478 阅读 · 0 评论 -
【暴力】Codeforces990G GCD Counting
题意:在一颗树上,每个点有一个权值,求任意两点间路径上所有点的权值的gcd值,以及每个值出现的次数。分析:由于每个权值的范围在20000以内,所以能成为多个数的gcd的值很少,于是就可以暴力卡一卡就能过了。#include<cstdio>#include<cstring>#include<cmath>#include<al...原创 2018-06-19 12:59:02 · 590 阅读 · 0 评论 -
【枚举】 HDU6387 AraBellaC
分析:题解上说要RMQ?。。。估计他自己没想清楚吧。。。这题哪用得着RMQ啊。。。首先,可以暴力枚举循环节的长度: 然后,对每种字母进行判断,求出每个循环节中B,C最靠前的位置和A,B最靠后的位置。 如果A最靠后的位置在B最靠前的后面,或者B最靠后的位置在C最靠前的后面。就说明当前这个循环节长度是矛盾的。如果不矛盾,则将A最靠后的位置及以前,都设为A,B最靠后的位置及以前(除去A的...原创 2018-08-14 14:57:28 · 283 阅读 · 0 评论 -
【状压DP】【字符串】SRM599D1L3 Similar
分析:每个字符串把它最大的前缀视为父亲,可以建一颗树出来。显然,如果标号满足aia_iai是bib_ibi的前缀,则必须满足:aiaiai在树上是bib_ibi的祖先。所以,可以定义DP[i][mask]DP[i][mask]DP[i][mask]表示:以i为根的子树中,已经标号的状态为mask的方案数。暴力转移会挂,所以只能先预处理出每种状态能转移到哪些,使得不会互相矛盾。因为...原创 2018-10-25 16:51:42 · 145 阅读 · 0 评论 -
【状压DP】【时间复杂度分析】四校联考1024T2
题意:分析:期望深度logN级。。。居然还真能把这个视为状压的大小。。。。要是运气稍微好一点不就T完了吗。。。什么叫实践之后发现并不会T啊。。。见识了。。。还有这种恶心题。。。有了这个性质DP起来就很水了。。直接枚举祖先的状态即可。但直接枚举存不下,所以用类似01DFS的方法来搞。#include&lt;cstdio&gt;#include&lt;cstring&gt;#in...原创 2018-10-24 19:28:02 · 849 阅读 · 0 评论