- 博客(106)
- 收藏
- 关注
转载 [bzoj4474][Jsoi2015]isomorphism【树哈希】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=4474 【题解】 先求出重心,(如果有两个重心就再新建一个点作为新重心),将无根树转化为有根树。然后再对有根树进行哈希。对于一棵子树,它的哈希值的计算方法是: 1.求出树根节点的每个儿子的子树的哈希值。 2.将这些哈...
2018-05-21 22:17:00 120
转载 [bzoj3522][Poi2014]Hotel【树形dp】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=3522 【题解】 有一种简单的方法是枚举中点然后统计答案。 时间复杂度O(N2) 但此题还有更巧妙的O(N)做法,见: https://blog.csdn.net/D_Vanisher/article/deta...
2018-04-22 17:19:00 161
转载 [bzoj4543][POI2014]Hotel加强版【树形dp】【长链剖分】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=4543 【题解】 枚举中点的方式行不通了,需要换一种思路。 想办法dp一下: 记f[i][j]f[i][j]表示以ii为根的子树,到ii距离为jj的点的数目。 g[i][j]g[i][j]表示以ii为根的子...
2018-04-22 17:17:00 124
转载 [bzoj3252]攻略【dfs序】【线段树】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=3252 【题解】 一个显而易见的贪心:每次一定取价值和最大的路径。 所以我们可以把每个点的权值设为它的到根的路径的价值和,然后按dfs序排好序后存入线段树种中。修改时,从叶节点开始往上走,每次把子树的所有点的权值减去它的价...
2018-04-20 22:22:00 121
转载 [bzoj5290][Hnoi2018]道路【树形dp】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=5290 https://www.luogu.org/problemnew/show/P4438 【题解】 记f[i][j][k]f[i][j][k]表示现在在ii号点从根节点到这个点经过了jj条未被修缮的公路和kk条未被修...
2018-04-19 22:12:00 93
转载 [bzoj5288][Hnoi2018]游戏【模拟】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=5288 https://www.luogu.org/problemnew/show/P4436 【题解】 听说枚举拐点的O(N2)O(N2)做法能AC,数据这么水的吗? 来讲一讲一种线性做法。 考虑一扇门,如果...
2018-04-19 21:52:00 108
转载 [bzoj5289][Hnoi2018]排列【贪心】【堆】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=5289 https://www.luogu.org/problemnew/show/P4437 【题解】 限制条件可以归纳为:若a[i]a[i]要在ii之前被选择。 那么我们将限制关系连边,无解的条件当且仅当出现环。...
2018-04-19 21:37:00 134
转载 [bzoj4348]ParkII【插头dp】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2310 【题解】 插头dp中一道较为繁琐(?)的题。 多开一维状态记选了多少个度为1的点。同时在状态的括号序列中新添一种状态3表示单独的插头,接下来就是分类讨论了。细节有点多,但是思维难度不大,具体实现见代码。 时间...
2018-04-18 22:10:00 104
转载 [bzoj2331][SCOI2011]地板【插头dp】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2331 【题解】 可以用插头dp的方式表示状态。 每一位用一个三进制位表示,0表示没有木块向该方向连通,1表示有木块,且还未拐弯。2表示有木块并且拐弯了。 时间复杂度O(N∗M∗22∗M+2),N>MO(N∗M...
2018-04-17 18:47:00 73
转载 [bzoj5285][Hnoi2018]寻宝游戏【复杂度分析】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=5285 【题解】 考虑最后一个影响一个二进制位的数。 如果出现“&0”,那么之前所有的操作都不能影响它。同理“|1”也是。 另外两种状态“&1”,“|0”不会影响前面的状态。 所以从后往前枚举每...
2018-04-17 18:41:00 80
转载 [bzoj1210][HNOI2004]邮递员【插头dp】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1210 【题解】 一道插头dp的入门题。 粗略来说就是从上往下,从左往右一格一格dp,用状态压缩的方法记录与未搜索格子的连通性(最小表示法或括号法)。 具体可见陈丹琦的:《基于连通性状态压缩的动态规划问题》 时...
2018-04-16 21:55:00 125
转载 [bzoj3470]Freda’s Walk【概率与期望dp】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=3470 【题解】 正着做一遍求出从一号点到每个点的概率g[i]g[i]。 倒着做一遍求出每个点开始向后走期望走多远f[i]f[i]。 然后考虑去除一个点ii的一条出边后的影响,显然就是f[i]f[i]的变化量乘以到达...
2018-04-14 20:25:00 90
转载 [bzoj4851][Jsoi2016]位运算【矩阵乘法】【状压dp】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=4851 【题解】 题目中说选的数两两都不相同,那么我们状压记是否满足了不同的限制,并且规定前一个比后一个大。再开一位记最前面的一个是否小于SS。转移时,2n2n枚举这一位填什么。然后判断是否合法。我们的目标是求出对于每一种开始的...
2018-04-14 20:17:00 179
转载 [bzoj4852][Jsoi2016]炸弹攻击【随机化】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=4852 【题解】 在平面中随机选取一些点作为初始点,然后模拟退火。 tip:在模拟退火时,由于答案比较小,但是温度比较高,所以在算expexp时最好把相差的点数乘以一个常数让选取更差的的概率降低。 /* --...
2018-04-14 19:48:00 143
转载 [bzoj4853][Jsoi2016]飞机调度【最短路】【网络流】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=4853 【题解】 用Floyd求出飞机从一个点到另一个地点的最短耗时。 将需要的线路看做点,若一条线路能到其他的线路,则向该线路连边。 问题转化成了最少路径覆盖问题。 /* --------------...
2018-04-14 19:42:00 199
转载 [bzoj4850][Jsoi2016]灯塔【暴力】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=4850 【题解】 考虑从位置i到位置i+1只有O(N−−√)O(N)个灯塔距离该位置的相对距离发生了改变。暴力修改即可。 具体实现时,从左往右做一遍处理出左边的影响,再从右往左做一遍处理右边的影响。由于距离不会变小,所以不...
2018-04-09 21:49:00 83
转载 [bzoj4919][Lydsy1706月赛]大根堆【dp】【启发式合并】【stl】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=4919 【题解】 很妙的一道题。考虑N∗logNN∗logN的dp求最长上升序列的做法。我们把其中每一个值存入multiset中。那么其中一个值从小到大的排名即为序列末尾为这个值的序列长度。 现在考虑将其拓展到树上。显然两...
2018-04-02 21:55:00 98
转载 [bzoj1097][POI2007]旅游景点atr【最短路】【状压dp】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1097 【题解】 首先预处理出前k+1个点到每个点的最短路。 然后状压dp。记f[i][j]f[i][j]表示当前停留在i,需要停留的点的状态为j,转移就枚举下一个停留点是哪里。 时间复杂度:O(K∗kM+2K∗K)...
2018-04-02 21:45:00 79
转载 [bzoj3566][SHOI2014]概率充电器【树形dp】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=3566 【题解】 套路题O(n)O(n)求出一个的解,然后O(1)O(1)换根。 *注意除0的问题。/* -------------- user Vanisher problem bzoj-3566-...
2018-04-01 21:06:00 79
转载 [bzoj3677][Apio2014]连珠线【树形dp】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=3677 【题解】 首先一定存在一个点,当他作为根时所有个蓝线都以x-dad[x]-dad[dad[x]]存在。因此可以先确定一个根,O(N)O(N)dp一下,然后O(1)O(1)换根。 时间复杂度:O(N)O(N) ...
2018-04-01 21:02:00 90
转载 [bzoj1043][HAOI2008]下落的圆盘【计算几何】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1043 【题解】 考虑每个圆对答案的贡献,对于每个圆,枚举之后下落的圆盘,求出被覆盖的区间相对于X轴正方向的夹角的弧度值,然后排序,求出没被覆盖的弧度区间即可。 时间复杂度O(N2∗logN) tips:c++的反三...
2018-04-01 20:57:00 113
转载 [bzoj1032][JSOI2007]祖码Zuma【区间dp】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1032 【题解】 由于标算有误在此不写题解。 /* -------------- user Vanisher problem bzoj-1032----------------*/# inclu...
2018-04-01 20:47:00 66
转载 [bzoj1063][Noi2008]道路设计【树形dp】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1063 【题解】 首先有一个结论,不便利值的最大值是logNlogN级别的。 那么随便dp一下就行了。 时间复杂度O(N∗logN)O(N∗logN) /* -------------- use...
2018-04-01 20:44:00 84
转载 [bzoj1078][SCOI2008]斜堆【可并堆】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1078 【题解】 斜堆有一些有趣的性质: 1).最后一个插入的节点一定在最左边的一条链上。 2).最后一个插入的节点一定没有右儿子。 3).每个非叶节点都有左儿子。 从中,我们可以发现一个大秘密: ...
2018-04-01 20:32:00 46
转载 [bzoj3744]Gty的妹子序列【分块】【主席树】
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=3744 【题解】 分块套路题。 首先可以用可持久化线段树在O(logN)O(logN)的时间内求出,一个点在一段区间内的逆序对数。 其次可以在O(T)O(T)的时间内求出两个大小为TT的有序区间的相互的逆序对数(Two...
2018-03-16 20:57:00 73
转载 [bzoj3720]Gty的妹子树【树分块】
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=3720 【题解】 按dfs序树分块的模板题。 每个节点的子树在dfs序中一定为一串连续的区间,那我们对dfs序分块就行了,每个块内元素按大小排序。查询时暴力找边界上的块,中间的块二分一下。修改时暴力维护大小顺序,插入时插在它...
2018-03-16 20:47:00 110
转载 [bzoj3438]小M的作物【最小割】
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=3438 【题解】 一个不算太复杂的最小割模型。 首先SS往每个点连边,流量为a[i]a[i],每个点往TT连边,容量为b[i]b[i]。 对于每个组合,新建两个点u,vu,v,SS向uu连边,流量为c1c1,uu向每个...
2018-03-16 20:34:00 106
转载 [bzoj4518][Sdoi2016]征途【dp】
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=4518 【题解】 斜率优化dp。 首先不难想到一个O(n3)O(n3)的暴力,由于平均值是固定的,记f[i][j]f[i][j]表示到了第ii站,停了jj次的方差最小值,f[i][j]=min(f[k][j−1]+(s[i]...
2018-03-16 20:25:00 107
转载 [bzoj4260]Codechef REBXOR【trie树】
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=4260 【题解】 一段的异或和可以转换为两个前缀的异或。 因此可以用trie树预处理出任意一个节点向左或向右的最大异或。 然后求出前缀/后缀最大值,枚举断点即可。/* -------------- ...
2018-03-16 19:09:00 118
转载 [bzoj3307]雨天的尾巴【线段树】
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=3307 【题解】 首先这道题所有的修改可以一次处理完。 若有一条边(u,v)(u,v)在u,vu,v上各打一个+1+1的标记,在lca(u,v),dad(lca(u,v))lca(u,v),dad(lca(u,v))上各...
2018-03-13 21:59:00 66
转载 [bzoj3436]小K的农场【差分约束系统】【判负环】
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=3436 【题解】 一道比较裸的差分约束模板题。 当opt=1opt=1时,aa向bb连一条权值为−c−c的边。 当opt=2opt=2时,bb向aa连一条权值为cc的边。 当opt=3opt=3时,aa向bb连一...
2018-03-13 21:40:00 55
转载 [bzoj1085][SCOI2005]骑士精神【暴力】
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1085 【题解】 dfs+剪枝即可。 剪枝的方法是,若当前状态与目标状态有kk个不同。那么至少还要使用k−1k−1步。若当前步数+k−1≥当前步数+k−1≥ ans则直接退出。 /* -------------...
2018-03-07 18:52:00 55
转载 [bzoj1034][ZJOI2008]泡泡堂BNB【贪心】
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1034 【题解】 现将两个序列排好序。来考虑AA对BB的最大收益。 记la,ra,lb,lbla,ra,lb,lb为A,bA,b剩余数列的左右端点。 若a[la]>b[lb]a[la]>b[lb]则选择这两...
2018-03-07 18:48:00 69
转载 [bzoj1046][HAOI2007]上升序列【dp】
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1046 【题解】 记f[i]f[i]为从第ii个往后的上升序列的最长长度。 那么每遇到一个询问:将数列从前往后扫一遍,若f[i]>Lf[i]>L则选了ii之后一定能构造出一个合法的序列,为了保证字典序最小,ii一...
2018-03-07 18:38:00 62
转载 [bzoj1050][HAOI2006]旅行comf【MST】
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1050 【题解】 枚举最小值,把比它小的边都删去做一遍MST求出最大值,注意MST只要做到SS与TT连通。/* -------------- user Vanisher problem bzoj-1050...
2018-03-07 18:32:00 71
转载 [bzoj1047][HAOI2007]理想的正方形【单调队列】
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1047 【题解】 横着做一遍单调队列得出每个点往右nn个的最大/最小值。 接下来用之前的结果竖着做一遍单调队列得出每个n∗nn∗n矩形的最大/最小值。 复杂度O(n2)O(n2)/* -------------...
2018-03-07 18:29:00 98
转载 [bzoj1004][HNOI2008]Cards【群论】
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1004 【题解】 由于数量有限制,无法使用Polya定理,要用Burnside引理。即ans=每种置换不动点的数量的平均值ans=每种置换不动点的数量的平均值 对于每种置换,我们可以用dp来统计答案。记f[i][j][k]f...
2018-03-07 18:26:00 65
转载 [bzoj1045][HAOI2008] 糖果传递【构造】
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1045 【题解】 记X[i]X[i]为从第ii堆向第i+1i+1堆转移的数量。(第nn堆转移到11) 那么有a[i]−X[i]+X[i−1]=averagea[i]−X[i]+X[i−1]=average X[i...
2018-03-07 18:03:00 91
转载 [bzoj4589]Hard Nim【FWT】
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=4589 【题解】 就是求nn堆石子异或和为00的方案数。 这个东西显然满足结合律,因此倍增计算就行了。暴力的复杂度O(m2∗log2n)O(m2∗log2n)。 考虑用FWT优化转移,这是经典的xor卷积。 复杂...
2018-03-07 13:10:00 68
转载 [bzoj3085]反质数加强版SAPGAP【暴力】【数论】
【题目描述】 http://www.lydsy.com/JudgeOnline/problem.php?id=3085 【题解】 这题同[bzoj1053]但数据范围更大,单纯的高精度不足以通过此题,因此我们要加上更强力的剪枝: 考虑每个质数的更紧的限制:假设现在有ii个PP,再增加一个花费的代价为PP利益为(i+1)/i(i+1)/...
2018-03-06 19:44:00 113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人