摘要:
题目链接: "戳我" 60pts 有一点容易写错的小细节: 比如说求全局的段数的时候,如果只有一种颜色,那么当左右端点相等时,就不要ans 了。 注意右端点小于左端点的情况。 ``` 阅读全文
摘要:
题目链接: "戳我" 先化简一下题意:一共n次操作,每次按照给定方向可以走[0,r l+1]个格子,障碍物格子不能走,问到最后最大的路径长度为多少? 60pts做法: 设$dp[i][j][k]$表示在执行完第k段的操作之后,的最大答案。 $dp[i][j][k]=max(dp[i][j][k],d 阅读全文
摘要:
题目链接: "戳我" 我们先做一个DP,就能求出来到前i位的最长上升子序列的长度(maxx[i]数组)。 然后我们考虑求最小割——给每个点拆点,如果要割掉这个点,就相当于把in[i] out[i]这条边给割掉了。 然后如果在最长上升子序列中,该位下面可以接很多,那么就从该位代表的out向下面可以接的 阅读全文
摘要:
题目链接: "戳我" 可以知道,我们相当于是把有宝藏在的地方围了一个圈,求这个圈最小是多大。 显然按照dfs序来遍历是最小的。 那么我们就先来一遍dfs序列,并且预处理出来每个点到根的距离(这样我们就可用$dis[u]+dis[v] 2 dis[lca(u,v)]$来表示u,v之间的距离) 怎么动态 阅读全文
摘要:
题目链接: "戳我" 蒟蒻的第一道子序列自动机! 给定两个01串A,B,求一个最短的01串,要求C不是A,B的子序列。要求如果同样短,输出字典序最小的。 那么我们先构建A,B两个串的子序列自动机。然后我们设$f[i][j]$表示现在已经匹配到A的第i位,B的第j位,现在还需要f[i][j]长度,才不 阅读全文