02 2017 档案
摘要:将位置划分成$O(m)$段区间,每段最早被阻挡的时间可以用堆维护。 那么每段区间对询问的贡献独立,扫描线处理即可。 时间复杂度$O(m\log m)$。
阅读全文
摘要:若$a\leq 1000$,则整个$f$数列会形成$O(a)$段公差为$a$的等差数列。 否则$a^{-1}\leq 1000$,设$ai+b=f(i)$,那么有$i=a^{-1}f(i)-ba^{-1}$。 交换$i$和$f(i)$的地位,这将形成$O(a^{-1})$段公差为$a^{-1}$的等
阅读全文
摘要:建立后缀树,用线段树合并求出每个节点子树内部最靠前和最靠后的后缀位置以及相邻后缀距离的最大值,同时求出每个子串能完整匹配的最长后缀的长度。 对于一个子串,如果其长度不小于相邻后缀距离的最大值,且最靠后的位置加上最长匹配的后缀长度不小于$n$,那么就说明可以从中间开始覆盖到尾部。 对串做KMP,求出每
阅读全文
摘要:与横线以及竖线的交点个数很容易求,那么只要求出横线竖线交点与运动轨迹的交点数即可。 运动轨迹可以划分成若干条贯穿边界的斜线,对于第一条和最后一条,可以用bitset暴力统计。 对于中间的部分,斜线都是完整的,可以FFT预处理。 时间复杂度$O(n\log n+\frac{nq}{32})$。
阅读全文
摘要:设$f[i][j][k]$表示考虑了前$i$个数字,增加了$j$根火柴,删掉了$k$根火柴是否可能,用bitset加速DP。 然后设$g[i][j]$表示增加了$i$根火柴,删掉了$j$根火柴的最小代价,枚举移动次数进行更新。 决策满足单调性,故可以分治求解。 设$m=14n$,则时间复杂度为$O(
阅读全文
摘要:对于$a^b$,如果$b=2$,那么在$[\sqrt{n},\sqrt{n}+k\log k]$内必定能找到$k$个质数作为$a$。 筛出$n^{\frac{1}{4}}$内的所有质数,暴力枚举所有落在该区间内的倍数,将其筛掉,即可判断每个数是否是质数。 然后以最大的质数的平方作为上界,枚举更大的$
阅读全文
摘要:根据Hall定理,若存在一个区间满足内部需求数$>$内部石子数,则不存在完美匹配。 由于区间互不包含,所以设: $a[i]$表示右端点$\leq i$的区间的容量之和。 $b[i]$表示左端点$\leq i$的区间的容量之和。 $s[i]$表示前$i$个位置的石子数之和。 则区间$[l,r]$的:
阅读全文
摘要:设$f[i]$表示$i$往上通过一趟公交车能到达的深度最小的祖先,这可以通过将公交车按$lca$深度从小到大排序后用并查集染色得到。 对于每个询问: $1.x==y$ $ans=0$。 $2.x$是$y$的祖先 交换$x,y$,变成$3$。 $3.y$是$x$的祖先: 在$f$上倍增即可。 $4.x
阅读全文
摘要:设$f[i][j]$表示$a[i]$改成$j$时的最小总代价。 若$a[i]<A(i-1)+1$,则不妨将其强行改成$A(i-1)+1$,如此处理之后$\min(f[n][1..Q])$就是答案。 可以发现,对于固定的$i$来说,$f[i][j]$从左往右形成一个下凸壳。 观察转移,$f[i-1]$
阅读全文
摘要:设最大的数为$w$,若$n>k+\log w$,那么显然所有$1$都可以保留,否则现在$n\leq k+\log w$。 如果$w\leq 100000$,那么可以DP,设$f[i][j]$表示考虑前$i$个数,保留的数的$or$是$j$时,最多能删除多少个数,时间复杂度$O(nw)$。 如果$w>
阅读全文
摘要:考虑从$0$到$n$枚举$A$的通关楼层。 设$f[i]$表示$B$通关$i$层时$C$最多能得到多少金币,因为金币数非负,所以也可以看作最多通关多少层。 当$A$的通关楼层往上多$1$的时候,这把钥匙必须给$A$。 如果这把钥匙还剩$0$把,那么说明: $1.B$某些楼层$j$以上都不能到达,对应
阅读全文
摘要:首先,如果这个图本身就不存在欧拉回路,那么显然无解。 对于每个子串: 1.如果里面有不存在的边,那么显然无解。 2.如果里面有一条边重复出现,那么显然也无解。 3.对于每条边,维护其前驱与后继,若前驱或后继超过$1$个,那么显然也无解。 如此所有边将形成一条条链或者环的结构,如果存在环,那么显然也无
阅读全文
摘要:将选手和询问按照年龄排序,即可去掉年龄的限制。 将所有选手按水平排序后维护线段树,显然最优解一定是从大到小贪心选择。 线段树上每个节点维护: $g[0/1]:r+1$不选/选的时候,$l$选不选。 $c[0/1]:r+1$不选/选的时候,中间选了几个。 $s[0/1]:r+1$不选/选的时候,中间选
阅读全文
摘要:将图黑白染色,每个点拆成两个点,分别表示水平和竖直方向,再增加一个点以控制流量,那么每个格子都需要找两个方向去连接。 $S$到每个黑点的控制点连边,流量$2$,费用$0$; 控制点向两个方向的点各连两条边,第一条流量$1$,费用$0$,第二条流量$1$,费用$w$; 然后两个方向的点分别向对应白点连
阅读全文
摘要:设$f[i][j][k]$表示前$i$个物品买了$j$个,消耗$k$个钻石,最少花多少钱,可以通过简单的DP求出。 枚举拥有的钻石数以及最多能购买的物品数的下界,那么钱数的下界是定值。 将$n$个箱子折半搜索,按钻石数分组并排序,枚举左半边每种方案,在右半边双指针求出总概率即可。 时间复杂度$O(n
阅读全文
摘要:首先预处理出$f[i][j][k]$表示长度为$i$的序列,第一个位置是$j$,最后一个位置是$k$时合法的方案数。 从后往前枚举LCP以及那个位置应该改成什么。 用线段树维护区间内最左最右的已经确定的位置,以及区间内的合法方案数。 合并的时候只需要将左右儿子的答案乘起来,然后再乘以左儿子最右到右儿
阅读全文
摘要:首先预处理出$f[i][j]$表示第$i$位是字符$j$的字符串集合。 考虑枚举答案$n$,那么模式串中模$n$相同的字符都要按顺序在同一行出现。 设$g[i][j]$表示第$i$列开始出现模$n$为$j$的那些字符是否有可能,可以通过bitset取交实现。 然后枚举模式串出现的列$x$进行贪心匹配
阅读全文
摘要:考虑二分答案,转化为求有多少$\leq lim$的数满足条件。 从两侧往中间进行数位DP,设$f[l][r][j][x][y][z][pre][suf]$表示当前准备填的两个位置是$l$和$r$,已经有$j$对相邻的数不同,$l-1$填的是$x$,$r+1$填的是$y$,正序串和逆序串的大小关系为$
阅读全文
摘要:将每条双向边拆成两条单向边,若两条边中至少存在一条边使得删掉它之后图中SCC个数不变,则这条边可以定向。 将边中间加上点,变成删点问题。 对于每个SCC单独考虑,随便选择一个不是拆点出来的点S作为源。 则在正图或者反图的Dominator Tree上的所有非叶子节点均会影响连通性。 用Lengaue
阅读全文
摘要:不妨设$R$是唯一可以看到的颜色,考虑一维序列的情况。 设$f[i][j][k][x][y]$表示考虑了前$i$个位置,第$i$个位置的高度是$j$,最高高度是$k$,已经用了$x$个$R$,$y$个非$R$的方案数,转移则是要么使自己的高度$+1$,要么考虑下一个位置。 由此可以在$O(n^5)$
阅读全文

浙公网安备 33010602011771号