摘要:
首先,来构造这棵树的形态 称位数相同的点为一类点,从每一类点中任选一个点,具有以下性质: 1.每一类中选出的点的导出子图连通(是一颗树) 2.每一条边必然有一个端点属于某一类中选出的点 (关于“若有解,一定存在上述这种形式的解”的证明可能比较困难,大概感性理解一下?) 由于类别很少(记为$m=\lf 阅读全文
摘要:
先线段树分治,但事实上与普通的动态连通性/二分图的判定有很大的区别: 1.对每一个修改(建议将初始的边也作为无色修改),在其第一次修改时进行判定,若发现不合法则将其颜色改为对该边最后一次可行的修改,之后再执行即可; 2.操作顺序会影响,有可能左子树中的操作先于父亲的操作 对于此类操作,必然要求父亲之 阅读全文
摘要:
对于两条边$(x_{1},y,c)$和$(x_{2},y,c)$,不难发现$x_{1}$与$x_{2}$完全等价,因此可以合并 重复此过程,合并之后用启发式合并来合并边集(注意自环也可以参与合并,即$(x,y,c)$和$(y,y,c)$,那么就将$x$和$y$合并),并用一个队列来记录操作 之后,当 阅读全文
摘要:
类似cf582E,先建出表达式树,然后树形dp+离散+min和max卷积的优化,复杂度为$o(nm|E|)$,无法通过 考虑我们仅关心于这$n$个数的大小关系,具体来说,假设给出的数组是$a_{i,j}$(其中$0\le i<m,1\le j\le n$),对于某一个$j$,将$a_{i,j}$从小 阅读全文
摘要:
称0到$L$的方向为左,同时为了方便,可以假设$0<t_{i}\le 2L$ 当我们确定是进入店中的方向,根据这个店的位置以及购物时间,不难确定出来时火车经过0或$L$的次数,由于$0<t_{i}\le 2L$,因此总共至少有一次且分别不超过1次,即分以下三类讨论: 1.经过0未经过$L$,在该位置 阅读全文
摘要:
由于每一个运算都有括号,因此添加的运算不会改变运算顺序 先将其建出一棵表达式树,也就是维护两个栈,是节点和运算符优先级单调递增的栈(设置左括号优先级最低,右括号弹出直至左括号) 每一次运算,也就是新建一个节点(节点上记录操作符),并将栈顶的两个节点作为其儿子即可 关于?是操作符还是变量的判定,只需要 阅读全文
摘要:
构造一张二分图,左边是$n$个点,右边是$n-1$个集合,按照点属于集合连边 定义一组匹配的意义,即说明该点的父亲在该集合中选择 利用dinic求出二分图的最大匹配,若不为$n-1$则无解,否则考虑如何去构造一组解: 考虑左边剩下的未参与匹配的点$x$,将其作为根,并将所有含有$x$的集合所匹配的点 阅读全文
摘要:
令$f_{S}$表示字符串$S$的答案(所有子集的方案数之和),考虑转移: 1.最后是一个字符串,不妨仅考虑最后一个字符,即$f_{S[1,|S|)}$(字符串下标从1开始),特别的,若$S_{|S|}=1$,还有一个2倍的系数 2.是一个乘法,考虑是$k\times T$,记$l=|T|$,则$T 阅读全文
摘要:
考虑第$i$列的答案,即找到一个区间$[l,r]$,使得: 1.$l$和$r$要同奇偶,令$ans=\frac{r-l}{2}$,要求尽量大($ans+1$即为该列答案) 2.$\forall 0\le j\le ans$,$[l+j,r-j]\subseteq [l_{i-j},r_{i-j}], 阅读全文
摘要:
先考虑枚举最后的点,并以其为根 首先,操作祖先-后代关系是没有意义的,因为以后必然有一次操作会操作祖先使其返回原来的位置,那么必然不如操作后代和那一个点(少一次操作) 考虑某一次操作,总深度和恰好减2,因此若有解,操作次数为深度和的一半 考虑dp,令$f_{k}$表示以$k$为根的子树经过若干次操作 阅读全文
摘要:
特判$n=2$,以下有$n\ge 3$ 考虑两个节点的交集,分类讨论: 1.距离大于4,则交集为空 2.距离等于4,则交集大小恰好为1,即路径上中间的点 3.距离等于3,则交集大小恰好为2,即路径上的两个点(不包括端点) 4.距离等于2,则交集大小至少为3,至少包含两者路径上包括端点的3个点 5.距 阅读全文
摘要:
考虑这样一个问题—— 有若干个$01$序列,将这些序列以任意顺序连接,最小化逆序对数 记其中第$i$个序列有$a_{i}$个$0$和$b_{i}$个$1$,序列内部的逆序对数可以直接统计 此时,仅需统计序列间的逆序对数,进而即按照$\frac{b_{i}}{a_{i}}$从小到大排序(调整法易证) 阅读全文
摘要:
令$f(x)=\frac{x^{2}+c}{x}$,换言之即$x$物品的性价比的倒数 对其求导即$f'(x)=1-\frac{c}{x^{2}}$,其导数严格递增,换言之即是一个严格下凸函数,记$x_{0}$为其最小值的位置,那么不难证明$x_{0}=\lfloor\sqrt{c}\rfloor$或 阅读全文
摘要:
(可以先阅读题目中关于顺逆时针的定义,避免理解错误) 考虑一盘菜$b_{i}$被$a_{j}$吃掉,对于其最后一次移动:如果是顺时针,则称$b_{i}$的移动区间为$[a_{j},b_{i}]$(若$b_{i}<a_{j}$则为$[a_{j},n)\cup[0,b_{i}]$的环),反之类似(特别的 阅读全文
摘要:
考虑对于第$i$层$x$与第$i+1$层所对应的点$y$,点$p$在前$i$层中当且仅当$p$到$x$比$p$到$y$距离小 由此,考虑枚举第一层的一个点以及对应到第二层的边,通过bfs就可以确定第一层的点 接下来,标记第一层的点后,第一层的点剩下到未标记的点即为第二层的点,以此类推,就可以$o(m 阅读全文
摘要:
考虑每一个圆即对应于区间$[x_{i}-r_{i},x_{i}+r_{i}]$,可以看作对于每一个区间,要求所有右端点严格比其小的区间不严格包含左端点 用$f_{i}$表示仅考虑右端点不超过$i$的区间的方案数,分为两类: 1.第$i$个节点不作为右端点,即$f_{i-1}$; 2.第$i$个节点作 阅读全文
摘要:
记$len_{i}=r_{i}-l_{i}$,即第$i$个区间的长度 用$f_{i,j}$表示前$i$个区间合法,第$i$个区间位于$[j,j+len_{i}]$的最小代价,暴力dp的时间复杂度为$o(nL^{2})$ 考虑$f_{i,j}$的转移,即$f_{i,j}=\min_{[j,j+len_ 阅读全文
摘要:
考虑当$a\le b$时,构造两种方案,满足诚实的人不交,接下来要求对于任意询问,这两种方案的答案都有可能相同 考虑询问$(i,j)$,若$i$在两种方案中有一种不诚实,那么总可以让答案相同,又因为诚实的人不交,因此一定可行 当$a>b$,我们只需要找到一个诚实的人就可以做了,考虑如何找到这个诚实的 阅读全文