摘要:
题意 维护一个由小写字母构成的字符串,要求支持单点修改,插入单个字符,查询两个后缀的$LCP$ 思路 LCP是可以用二分+hash检验的,支持插入操作自然可以想到平衡树,由于hash可以使用线段树或者平衡树维护,所以本题平衡树+二分即可 ~~本题需要一定卡常~~ Code cpp include d 阅读全文
摘要:
题意 有$n$个质量分别为$m_i$行星($n\leq 1e5$)排成一排,给定一个 很小 的常数$A$,对于每一个行星$i$,求$ans[i]$=$\Sigma_{j=1}^{A i}(m_i m_j/(i j))$,误差不超过5%即可算正确 Sol 乱搞。。。 假设$(i j)$是一个定值$k$ 阅读全文
摘要:
题意 有三种颜色分别$a,b,c$个,用它们给$a+b+c$的序列染色,求染色方案数,同时给定$m$个置换,两种方案相同当且仅当存在一个置换使得其中一种方案变成另一种。数据保证任意一种置换排列方式都可以 只用一个置换 替代,且对于任一个置换,都存在另一个置换是它的逆元 Sol $Burnside$引 阅读全文
摘要:
题意 给一张 弦图 ,求它的最小染色 最小染色:将点用最少的颜色染色,使得相邻点颜色不同 弦:连接环中不相邻的两个点的边 弦图:一个无向图称为弦图当图中任意长度大于3的环都至少有一个弦 具体参照 "这篇博客" 思路 最大势算法 ~~待补充~~ 求出原图的完美消除序列,从序列的最后一个开始每次选择目前 阅读全文
摘要:
prufer序列 是什么? 百度百科这样说: Prufer数列是无根树的一种数列。在组合数学中,Prufer数列由有一个对于顶点标过号的树转化来的数列,点数为n的树转化来的Prufer数列长度为n 2。它可以通过简单的迭代方法计算出来。 与无根树的转换 1.无根树转prufer序列 重复以下步骤直至 阅读全文
摘要:
题意 有一个$m n$的棋盘$(n,m\leq 50)$,每个各自上有数字,一个马从起始位置出发跳向目标位置,走到0号格子会花费1代价,走到1号格子或者目标位置不花费代价,2号格子不能走,求$S$到$T$的最小代价及方案数(注意:两种方案不同当且仅当路径上的 至少有一个不同的0号格子 ) 思路 下面 阅读全文
摘要:
图论学习从入坑信息学竞赛就开始了,到现在已经很久了,值得总结一下 梦开始的地方——最短路 世上本没有最短路,抄近道的人多了,便成了最短路 —— ~~鲁迅~~ 众所周知,最短路常用算法有三种:Floyd,~~SPFA~~,dijkstra,每一种在不同情形下都有不同的作用,其中,①$Floyd$处理多 阅读全文
摘要:
题意 给定一颗边权为1的树,点权为v,给定m条从s到t的路径,对于每个点,求$ans_i=\Sigma_{j=1}^m [dist(s_j,i)==v[i]]$ 思路 有两种可能的做法,一种是把路径全加进去,再每一个点求$ans$,另一种是一条一条加路径,每次求贡献。而这道题用的是第一种 对于每一条 阅读全文
摘要:
题意 给一颗树,树边带权,有一些标记了的点,每个点可以在树上沿边移动,移动代价为边权。求一种移动策略,使得移动之后的树从根节点到每个叶子都至少有一个标记点,且每个点移动代价的最大值最小。最终状态下根节点不能带标记,无解输出 1 思路 1. 最值问题,且问题有单调性,可以二分,设当前要check的最大 阅读全文
摘要:
题目 "链接" 思路 最简单的思路肯定就是直接用堆维护,每次取最大的那一个,切成两截扔回堆里面(至于所有蚯蚓加上$q$,可以看做是新生成的蚯蚓减去$time q$,最后再加回去即可,其中$time$即第几秒),然而这样子做是$O(n+m)log(n+m)$的,过不了 分析后可以发现单调性,即如果把切 阅读全文