
【资料】模板题
文章平均质量分 57
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【LOJ138】类欧几里得算法
【题目链接】点击打开链接【思路要点】以下考虑实现函数 func(N,a,b,c)func(N,a,b,c)func(N,a,b,c) ,计算 0≤k1+k2≤100\leq k_1+k_2\leq100≤k1+k2≤10 的情况下所求式子的值,即∑i=0Nik1⌊ai+bc⌋k2\sum_{i=0}^{N}i^{k_1}\lfloor\frac{ai+b}{c}\rfloo...原创 2019-07-04 14:53:40 · 987 阅读 · 2 评论 -
【BZOJ4161】Shlw loves matrixI
【题目链接】点击打开链接【思路要点】用Cayley-Hamilton定理优化常系数齐次线性递推模板题。时间复杂度\(O(K^2LogN)\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 4005;const int P = 1e9 + 7;template <typename T> ...原创 2018-06-19 17:53:52 · 381 阅读 · 0 评论 -
【BZOJ1208】【HNOI2004】宠物收养所
【题目链接】 点击打开链接 【思路要点】 平衡树/std::set/multisetstd::set/multisetstd::set/multiset模板题。 时间复杂度O(NLogN)O(NLogN)O(NLogN)。 【代码】 #include<bits/stdc++.h>using namespace std;...原创 2018-06-29 20:56:18 · 475 阅读 · 0 评论 -
【PE258】A lagged Fibonacci sequence
【题目链接】 点击打开链接 【思路要点】 用Cayley-Hamilton定理优化线性递推。 时间复杂度O(N2LogK)O(N2LogK)O(N^2LogK),其中N=2000,K=1018N=2000,K=1018N=2000,K=10^{18}。 【代码】 #include<bits/stdc++.h>using ...原创 2018-06-29 20:49:18 · 708 阅读 · 0 评论 -
【CodeForces914G】Sum the Fibonacci
【题目链接】点击打开链接【思路要点】比较基本的子集卷积,子集异或卷积和子集与卷积。时间复杂度\(O(X^2*2^X)\),其中\(X=17\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 20;const int MAXS = 2 << 17;const int P = 1e9 + ...原创 2018-06-07 19:55:10 · 453 阅读 · 0 评论 -
【BZOJ5317】【JSOI2018】部落战争
【题目链接】点击打开链接【思路要点】询问点\(c=(x,y)\)的答案为1当且仅当\(c\in \{a+(-b)|a\in A,b\in B\}\)。 求解两个点集凸包的闵可夫斯基和,然后判断询问点是否在求得的凸包中即可。 时间复杂度\(O(NLogN)\)。【代码】#include<bits/stdc++.h>using namespace st...原创 2018-05-24 15:02:48 · 752 阅读 · 0 评论 -
【BZOJ3944】Sum
【题目链接】点击打开链接【思路要点】杜教筛模板题。 时间复杂度为\(O(TN^{\frac{2}{3}})\)。【代码】#include<bits/stdc++.h>using namespace std;#define MAXN 4000005#define MAXM 10005template <typename T> void ...原创 2018-05-25 20:45:49 · 273 阅读 · 0 评论 -
【BZOJ1180】【CROATIAN2009】OTOCI
【题目链接】点击打开链接【思路要点】动态树模板题。时间复杂度\(O(QLogN)\)。【代码】#include<bits/stdc++.h>using namespace std;#define MAXN 30005template <typename T> void read(T &x) { x = 0; int f = 1; char c = getc...原创 2018-05-21 10:37:00 · 172 阅读 · 0 评论 -
【CodeForces487E】【UOJ30】Tourists
【题目链接】CodeForcesUOJ【思路要点】首先我们来证明点双连通分量的一个性质。引理:在一个点双连通分量中,给定任意三个不同的点\(a\),\(b\),\(c\),一定存在一条从\(a\)到\(c\)的,经过每个点至多一次的简单路径经过了\(b\)。证明:考虑网络流。在原图中存在无向边的点对之间建立无向边,容量为1;对每个点拆点限流,容量为1;由\(a\)和\(c\)向汇点连边,容量为1;...原创 2018-05-20 11:00:27 · 322 阅读 · 0 评论 -
【BZOJ1568】【JSOI2008】Blue Mary开公司
【题目链接】点击打开链接【思路要点】用李超线段树维护一次函数单点最值,模板题。时间复杂度\(O(NLogN)\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 100005;const int MAXP = 200005;const int MAXL = 15;template <type...原创 2018-05-19 10:47:27 · 228 阅读 · 0 评论 -
【BZOJ4520】【CQOI2016】K远点对
【题目链接】点击打开链接【思路要点】KDTree实现K-临近搜索,实现时需要用一个堆来辅助。时间复杂度\(O(N\sqrt{N}+NKLogK)\)。【代码】#include<bits/stdc++.h>using namespace std;#define MAXN 100005template <typename T> void read(T &x) {...原创 2018-04-25 17:17:33 · 214 阅读 · 0 评论 -
【BZOJ1814】Ural 1519 Formula 1
【题目链接】点击打开链接【思路要点】基于连通性的的动态规划模板题。时间复杂度\(O(3^M*N*M)\)。【代码】#include<bits/stdc++.h>using namespace std;#define MAXN 30#define TMPN 15#define HASH 1000005#define P 100003struct Hash_Table { i...原创 2018-04-19 20:28:17 · 304 阅读 · 0 评论 -
【BZOJ4519】【CQOI2016】不同的最小割
【题目链接】 点击打开链接 【思路要点】 GomoryHu-Tree模板题。 时间复杂度O(N∗Dinic(N,M))O(N∗Dinic(N,M))O(N*Dinic(N,M))。 【代码】 #include&lt;bits/stdc++.h&gt;using namespace std;#define MAXN 1005...原创 2018-07-03 11:20:38 · 264 阅读 · 0 评论 -
【LOJ6053】简单的函数
【题目链接】 点击打开链接 【思路要点】 Min25Min25Min25筛模板题。 时间复杂度O(N34LogN)O(N34LogN)O(\frac{N^{\frac{3}{4}}}{LogN})。 【代码】 #include<bits/stdc++.h>using namespace std;const int MA...原创 2018-08-09 20:55:52 · 990 阅读 · 1 评论 -
【LOJ6235】区间素数个数
【题目链接】 点击打开链接 【思路要点】 Min25Min25Min25筛模板题。 时间复杂度O(N34LogN)O(N34LogN)O(\frac{N^{\frac{3}{4}}}{LogN})。 【代码】 #include<bits/stdc++.h>using namespace std;const int MA...原创 2018-08-09 20:59:18 · 812 阅读 · 0 评论 -
【POJ3648】Wedding
【题目链接】点击打开链接【思路要点】需要输出方案的 2−SAT2-SAT2−SAT 问题模板题。时间复杂度 O(N+M)O(N+M)O(N+M) 。【代码】#include<cstdio>#include<vector>#include<algorithm>#include<cstring>#include<...原创 2019-07-09 20:41:44 · 333 阅读 · 0 评论 -
【省内训练2019-06-04】字符串
【思路要点】枚举 i−ji-ji−j ,计算最大的 kkk 使得 S[i−j+1…i−j+k]S[i-j+1\dots i-j+k]S[i−j+1…i−j+k] 为 S[1…i−j]S[1\dots i-j]S[1…i−j] 的子串,则由该问题的答案显然可以解决原问题。需要维护字符串 S,TS,TS,T ,支持在 SSS 后加入字符,保证 TTT 是 SSS 的子串的情况下在 TTT 后加...原创 2019-06-07 11:57:36 · 182 阅读 · 0 评论 -
【LOJ6485】LJJ 学二项式定理
【题目链接】点击打开链接【思路要点】∑t=03at∑i=0N(Ni)si[i%4=t]\sum_{t=0}^{3}a_t\sum_{i=0}^{N}\binom{N}{i}s^i[i\%4=t]t=0∑3ati=0∑N(iN)si[i%4=t]=∑t=03at∑i=0N(Ni)si∑j=03w4j(i−t)=\sum_{t=0}^{3}a_t\sum_{i=0}^{N}...原创 2019-04-25 13:54:29 · 674 阅读 · 0 评论 -
【BZOJ3684】大朋友和多叉树
【题目链接】点击打开链接【思路要点】令 f(x)=∑i=1NAnsixif(x)=\sum_{i=1}^{N}Ans_ix^if(x)=∑i=1NAnsixi ,则有f(x)=x+∑i∈Df(x)if(x)=x+\sum_{i\in D}f(x)^if(x)=x+i∈D∑f(x)i根据上式,令 g(x)=x−∑i∈Dxig(x)=x-\sum_{i\in D}x^ig(...原创 2019-04-09 18:10:06 · 674 阅读 · 0 评论 -
【LOJ6268】分拆数
【题目链接】点击打开链接【思路要点】注意到 1+x+x2+x3+...=11−x1+x+x^2+x^3+...=\frac{1}{1-x}1+x+x2+x3+...=1−x1 ,答案 AnsAnsAns 即为 ∏i=1∞11−xi\prod_{i=1}^{\infty}\frac{1}{1-x^i}∏i=1∞1−xi1 前 NNN 项的系数,即 Ans(x)=∏i=1∞11...原创 2019-03-20 11:34:22 · 1263 阅读 · 0 评论 -
【CodeForces348D】Turtles
【题目链接】点击打开链接【思路要点】直接应用 Lindström–Gessel–Viennot lemma 即可。时间复杂度 O(N∗M)O(N*M)O(N∗M) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 3005;const int P = 1e9 + 7;t...原创 2018-09-19 13:16:31 · 420 阅读 · 0 评论 -
【BZOJ3667】Rabin-Miller算法
【题目链接】 点击打开链接 【思路要点】 Pollard′s rhoPollard′s rhoPollard's\ rho算法模板题。 需要借助MillerRabinMillerRabinMillerRabin 素数测试。 时间复杂度 O(Log2N+N14+N14∗α(N)β+β∗α(N))O(Log2N+N14+N14∗α(N)...原创 2018-09-03 12:36:34 · 316 阅读 · 0 评论 -
【LOJ143】质数判定
【题目链接】 点击打开链接 【思路要点】 MillerRabinMillerRabinMillerRabin 素数测试模板题。 时间复杂度 O(TLog2N)O(TLog2N) O(TLog^2N) 。 【代码】 #include&lt;bits/stdc++.h&gt;using namespace std;const int...原创 2018-09-02 17:33:40 · 650 阅读 · 0 评论 -
【SPOJ】DIVCNTK
【题目链接】 点击打开链接 【思路要点】 Min25Min25Min25筛模板题。 时间复杂度O(N34LogN)O(N34LogN)O(\frac{N^{\frac{3}{4}}}{LogN})。 【代码】 #include<bits/stdc++.h>using namespace std;const int MA...原创 2018-08-10 19:27:44 · 433 阅读 · 0 评论 -
【SPOJ】DIVCNT3
【题目链接】 点击打开链接 【思路要点】 Min25Min25Min25筛模板题。 时间复杂度O(N34LogN)O(N34LogN)O(\frac{N^{\frac{3}{4}}}{LogN})。 【代码】 #include<bits/stdc++.h>using namespace std;const int MA...原创 2018-08-10 19:25:58 · 440 阅读 · 0 评论 -
【SPOJ】DIVCNT2
【题目链接】 点击打开链接 【思路要点】 Min25Min25Min25筛模板题。 时间复杂度O(N34LogN)O(N34LogN)O(\frac{N^{\frac{3}{4}}}{LogN})。 【代码】 #include<bits/stdc++.h>using namespace std;const int MA...原创 2018-08-10 19:24:29 · 313 阅读 · 0 评论 -
【BZOJ3065】带插入区间K小值
【题目链接】点击打开链接【思路要点】替罪羊树套权值线段树。时间复杂度\(O(NLog^2N)\)。【代码】#include<bits/stdc++.h>using namespace std;#define MAXN 70005#define MAXV 70005#define MAXP 20000005#define ALPHA 0.68template <type...原创 2018-04-23 20:32:02 · 288 阅读 · 0 评论 -
【BZOJ1941】【SDOI2010】Hide and Seek
【题目链接】点击打开链接【思路要点】用KDTree做的话就是模板题了,时间复杂度\(O(N\sqrt{N})\)。正解应该是分治。【代码】#include<bits/stdc++.h>using namespace std;#define MAXN 500005#define INF 1e9template <typename T> void read(T &...原创 2018-04-23 19:53:09 · 333 阅读 · 0 评论 -
【BZOJ1010】【HNOI2008】玩具装箱toy
【题目链接】点击打开链接【思路要点】状态\(F_{i}\)表示把前\(i\)个玩具装箱的最小费用,\(S_{i}\)为\(C_{i}\)的前缀和。则有以下转移方程:$$F_{i}=min_{j=1}^{i}\{F_{j-1}+(i-j+S_{i}-S_{j-1}-L)^2\}$$令\(A_{i}=i+S_{i}-L\),\(B_{j}=j+S_{j-1}\),用\(F_{j,i}\)表示前\(i\...原创 2018-02-18 20:06:42 · 300 阅读 · 0 评论 -
【BZOJ2599】【IOI2011】Race
【题目链接】点击打开链接【思路要点】点分治模板题。时间复杂度\(O(NLogN+K)\)。【代码】#include<bits/stdc++.h>using namespace std; #define MAXN 200005#define MAXK 1000005struct edge {int dest, len; }; vector <edge> a[MAXN...原创 2018-02-28 09:05:53 · 245 阅读 · 0 评论 -
【BZOJ4589】Hard Nim
【题目链接】点击打开链接【思路要点】异或FWT模板题。时间复杂度\(O(TM(LogN+LogM))\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 70005;const int P = 1e9 + 7;const long long inv = (P + 1) / 2;template &...原创 2018-03-07 12:33:52 · 306 阅读 · 0 评论 -
【BZOJ4327】【JSOI2012】玄武密码
【题目链接】点击打开链接【思路要点】后缀自动机模板题。时间复杂度\(O(字符串长度)\)。【代码】#includeusing namespace std;const int MAXN = 20000005;const int MAXC = 4;template void read(T &x) { x = 0; int f原创 2018-02-07 10:40:18 · 519 阅读 · 0 评论 -
【BZOJ3052】【UOJ58】【WC2013】糖果公园
【题目链接】BZOJUOJ【思路要点】维护一个糖果集合,支持加入一个糖果,删除一个糖果,显然,我们可以容易地在\(O(1)\)的时间内实现这些操作。考虑使用莫队算法。对树分块,运行树上带修莫队即可。实际上,这是一道树上带修莫队的模板题,相当于将带修莫队、树上莫队和树分块合为一体。时间复杂度\(O(N^{\frac{5}{3}})\)。【代码】#includeusing namespace std原创 2018-01-19 11:21:15 · 419 阅读 · 0 评论 -
【BZOJ3262】陌上花开
【题目链接】点击打开链接【思路要点】直观地来想,本题可以先排序一维,然后使用二维数据结构(树套树,KD-Tree)来解决。时间复杂度\(O(NLog^{2}N)\)或\(O(N\sqrt{N})\)。或者也可以用CDQ分治来解决本题,时间复杂度同样为\(O(NLog^{2}N)\)。其中树套树的空间复杂度高达\(O(NLog^{2}N)\),粗糙的实原创 2018-01-16 10:34:49 · 492 阅读 · 0 评论 -
【BZOJ2049】【SDOI2008】洞穴勘测
【题目链接】点击打开链接【思路要点】LinkCutTree模板题,支持维护动态森林的联通性,通过询问所在子树的根部来实现。时间复杂度\(O(MLogN)\)。【代码】#includeusing namespace std;#define MAXN 10005struct LinkCutTree { struct Node原创 2018-01-16 08:57:23 · 270 阅读 · 0 评论 -
【BZOJ1036】【ZJOI2008】树的统计
【题目链接】点击打开链接【思路要点】树链剖分模板题。时间复杂度\(O(QLog^{2}N)\)。【代码】#includeusing namespace std; #define MAXN 30005#define MAXLOG 20#define INF 1e9vector a[MAXN]; struct Node {原创 2018-01-15 17:13:28 · 247 阅读 · 0 评论 -
【BZOJ3172】【TJOI2013】单词
【题目链接】点击打开链接【思路要点】对单词集建立AC自动机,将单词用不可见字符连接,作为母串,放入AC自动机即可。时间复杂度\(O(∑|S|)\)(Fail树上差分+DFS),\(O(N*∑|S|)\)(暴力更新答案),均可通过。【代码】#includeusing namespace std;#define MAXN 1200原创 2018-01-15 11:03:22 · 327 阅读 · 0 评论 -
【BZOJ3224】【TYVJ1728】普通平衡树
【题目链接】点击打开链接【思路要点】本题包含了平衡树最基本的操作。是任何学习平衡树都应当先做一遍的题。笔者实现了四种平衡树,Splay、Treap、替罪羊树和非旋转式Treap(以及其可持久化)。【代码】Splay/*Splay Tree Version*/#includeusing namespace std;原创 2018-01-14 19:53:39 · 691 阅读 · 0 评论 -
【BZOJ1000】A+B Problem
【题目链接】点击打开链接【思路要点】仔细读题,注意空间限制。【代码】#includeusing namespace std;#define MAXN 5000int main() { int a, b; scanf("%d%d", &a, &b); printf("%d\n", a + b); return 0;原创 2018-01-12 09:02:17 · 470 阅读 · 1 评论 -
【BZOJ1022】【SHOI2008】小约翰的游戏John
【题目链接】点击打开链接【思路要点】SJ定理:若把SG游戏中SG函数为0的状态定义为必胜状态,那么状态是先手必胜当且仅当下述条件同时成立或同时不成立:1、\(SG_{S}=0\)2、\(\forall x\in S\ SG_{x}≤1\)然后就做完了。时间复杂度\(O(TN)\)。【代码】#include<bits/stdc++.h>using namespace std;#def...原创 2018-02-18 20:18:04 · 280 阅读 · 0 评论