- 博客(20)
- 收藏
- 关注
原创 【BZOJ1927】【SDOI2010】星际竞速
【题目链接】 点击打开链接 【思路要点】 补档博客,无题解。 【代码】 #include<bits/stdc++.h>using namespace std;#define MAXN 5005#define MAXQ 1000005#define INF 1e9template <typen...
2018-07-12 16:53:35 195
原创 【BZOJ2142】礼物
【题目链接】 点击打开链接 【思路要点】 当且仅当∑wi>N∑wi>N\sum w_i>N,答案为ImpossibleImpossibleImpossible,否则,答案为N!(∏wi!)∗(N−∑wi)!N!(∏wi!)∗(N−∑wi)!\frac{N!}{(\prod w_i!)*(N-\sum w_i)!}。 我们本质上需要解决若干组合数...
2018-07-12 16:48:56 402
原创 【BZOJ4899】记忆的轮廓
【题目链接】 点击打开链接 【思路要点】 预处理出costi,jcosti,jcost_{i,j}表示存档点i,ji,ji,j之间不存在其它存档点时,从iii走到jjj的期望步数。 问题可以由DP解决:记dpi,jdpi,jdp_{i,j}表示从初始状态到第一次达到已经设置了iii个存档点,第iii个存档点设置在了jjj处的期望步数。 显然有 ...
2018-07-11 20:24:23 563
原创 【BZOJ2687】交与并
【题目链接】 点击打开链接 【双倍经验连接】 【BZOJ2369】区间 【思路要点】 我们发现选取三个及以上个数的区间是没有意义的,因为首先我们选取的所有区间需要是有交的,这便意味着所有区间的并由左端点最靠左的区间和右端点最靠右的区间直接确定,删去其余的区间不会使区间的并或区间的交减少,因此我们可以认为我们只会选取两个区间。 我们选...
2018-07-11 15:22:35 774
原创 【BZOJ2369】区间
【题目链接】 点击打开链接 【思路要点】 我们发现选取三个及以上个数的区间是没有意义的,因为首先我们选取的所有区间需要是有交的,这便意味着所有区间的并由左端点最靠左的区间和右端点最靠右的区间直接确定,删去其余的区间不会使区间的并或区间的交减少,因此我们可以认为我们只会选取两个区间。 我们选取的两个区间的关系有可能是包含或相交。 考虑有包含关系的区间A,...
2018-07-11 15:19:46 245
原创 【BZOJ4894】天赋
【题目链接】 点击打开链接 【思路要点】 矩阵树定理同样可以计算有向图某个点的外向生成树的个数。 具体方法就是认为度数为每个点的入度,删除一号点(树根)所在的行列,然后求行列式。 时间复杂度O(N3)O(N3)O(N^3)。 【代码】 #include<bits/stdc++.h>using namespace st...
2018-07-08 18:55:13 374
原创 【BZOJ4569】【SCOI2016】萌萌哒
【题目链接】 点击打开链接 【思路要点】 很强的脑洞题。 显然有一个O(NM)O(NM)O(NM)的暴力,每次暴力用并查集合并区间的对应位置。 考虑加速这个过程,我们新建O(LogN)O(LogN)O(LogN)层点,第iii层的两个点pi,xpi,xp_{i,x}和pi,ypi,yp_{i,y}被用并查集合并,表示xxx起的2i2i2^i个元素和yy...
2018-07-06 19:19:34 341
原创 【BZOJ2521】【SHOI2010】最小生成树
【题目链接】 点击打开链接 【思路要点】 题目中的操作等价于对一条边权值加一。 问题转化为了,每条边有一个删去的代价,花费最少的代价,使得xxx和yyy通过除给定边以外小于等于给定边边权的边不连通。 最小割即可。 时间复杂度O(Dinic(N,M))O(Dinic(N,M))O(Dinic(N,M))。 【代码】 #includ...
2018-07-04 20:55:20 164
原创 【BZOJ2561】最小生成树
【题目链接】 点击打开链接 【思路要点】 比较显然的最小割,即删去最少的边,使得xxx和yyy通过小于和大于给定边边权的边都不连通。 时间复杂度O(Dinic(N,M))O(Dinic(N,M))O(Dinic(N,M))。 【代码】 #include<bits/stdc++.h>using namespace std;...
2018-07-04 20:48:52 289
原创 【BZOJ4073】【WF2014】Buffed Buffet
【题目链接】 点击打开链接 【思路要点】 先考虑CCC类食物,我们可以得出一个显然的DP做法。 令dpi,jdpi,jdp_{i,j}表示考虑了前iii种食物,选取了恰好jjj个单位质量的物品,能够得到的最大美味值之和。 有转移: dpi,j=maxwi|j−k,k≤j{dpi−1,k+j−kwi∗ti−j−kwi∗(j−kwi−1)∗δt2}d...
2018-07-04 20:41:25 451
原创 【BZOJ4435】【Cerc2015】Juice Junctions
【题目链接】 点击打开链接 【思路要点】 建出GomoryHu-Tree ,剩余部分用DFS即可解决。 时间复杂度O(N∗Dinic(N,M)+N2)O(N∗Dinic(N,M)+N2)O(N*Dinic(N,M)+N^2),由于最大流至多为3,因此Dinic(N,M)=O(N+M)Dinic(N,M)=O(N+M)Dinic(N,M)=O(N+M)。 ...
2018-07-03 20:34:16 334
原创 【BZOJ4530】【BJOI2014】大融合
【题目链接】 点击打开链接 【思路要点】 用LinkCutTree维护这棵树,在轻边的父亲处记录子树信息即可。 时间复杂度O(QLogN)O(QLogN)O(QLogN)。 【代码】 #include<bits/stdc++.h>using namespace std;const int MAXN = 100005;...
2018-07-03 20:28:38 186
原创 【BZOJ2229】【ZJOI2011】最小割
【题目链接】 点击打开链接 【思路要点】 建出GomoryHu-Tree ,剩余部分用DFS即可解决。 时间复杂度O(T∗(N∗Dinic(N,M)+NQ))O(T∗(N∗Dinic(N,M)+NQ))O(T*(N*Dinic(N,M)+NQ))。 【代码】 #include<bits/stdc++.h>using na...
2018-07-03 14:01:04 190
原创 【BZOJ3940】【Usaco2015 Feb】Censoring
【题目链接】 点击打开链接 【思路要点】 对模式串的集合建立AC自动机,让主串在上面匹配,每遇到一个模式串的末尾便将其删去即可。 时间复杂度O(∑|S|)O(∑|S|)O(\sum|S|)。 【代码】 #include<bits/stdc++.h>using namespace std;const int MAXN =...
2018-07-03 13:53:53 256
原创 【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 207
原创 【BZOJ3506】【CQOI2014】排序机械臂
【题目链接】 点击打开链接 【双倍经验链接】 【BZOJ1552】【Cerc2007】robotic sort 【思路要点】 将权值当做下标,我们需要实现的是查询一个节点在数组中的排名,以及翻转数组的一个区间。 用Splay维护即可,时间复杂度O(NLogN)O(NLogN)O(NLogN)。 【代码】 #inc...
2018-07-03 11:13:44 182
原创 【BZOJ1552】【Cerc2007】robotic sort
【题目链接】 点击打开链接 【双倍经验链接】 【BZOJ3506】【CQOI2014】排序机械臂 【思路要点】 将权值当做下标,我们需要实现的是查询一个节点在数组中的排名,以及翻转数组的一个区间。 用Splay维护即可,时间复杂度O(NLogN)O(NLogN)O(NLogN)。 【代码】 #include&lt...
2018-07-03 11:11:53 178
原创 【BZOJ3683】Falsita
【题目链接】 点击打开链接 【思路要点】 不考虑修改,计算出答案tansitansitans_i。 接下来我们只考虑每一次修改对合法点对权值的期望tanstanstans或总和sumsumsum所有产生的增量。 对于单点修改操作(x,y)(x,y)(x,y),我们考虑其对sumsumsum的增量,应当为:xxx到rootrootroot的路径上每一个点...
2018-07-02 21:37:45 369
原创 【CodeChef】Lucas Theorem
【题目链接】点击打开链接【思路要点】考虑subtask1,我们很容易可以得到一个动态规划的解法。注意到行与行之间转移的卷积本质,我们可以用FFT快速计算出DP数组的某一行,可以通过subtask2。原题中N非常大,我们不可能求得DP数组的第N行。考虑多项式x(x+1)(x+2)(x+3)…(x+p-1),在模质数p意义下,应当等于x^p-x。因为我们打表发现这两个多项式拥有...
2018-07-01 21:10:54 413
原创 【CodeForces319D】Have You Ever Heard About the Word?
【题目链接】 点击打开链接 【思路要点】 一个重要的性质是:当我们发现当前串中不存在长度为iii的repeating block时,长度为iii的repeating block不会再出现。 证明较为简单:上述命题等价于当前串中不存在长度为2i2i2i的repeating block时,我们删去一个长度为2j(j&gt;i)2j(j&gt;i)2j(j>i)...
2018-07-01 20:51:17 371
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人