Jessius的博客

blog.jessun.me

BZOJ 1051, 受欢迎的牛

求可以被除自己以外所有点遍历到的点的个数。 首先强连通分量跑一遍,缩点之后统计每个强连通分量(可以视为一个点)的出度。如果有多个出度大于0,则无解;否则输出唯一出度为0的强连通分量内点的个数。

2016-10-30 15:59:04

阅读数:80

评论数:0

BZOJ 1015, 星球大战

编写一个支持删点并查询当前图中连通块个数的数据结构。离线倒序处理+并查集。 于是删点就变成了加点,因此不必考虑正序处理时删边后两点是否仍连通的问题。 先将所有未删除的点加入到图中,再倒序依次加入被删除的点,用并查集来维护图的连通块个数。

2016-10-27 21:36:00

阅读数:79

评论数:0

BZOJ 1031, 字符加密

将一个长度为n的字符串首尾相连,以不同的下标为串的头,有n种读法,将这些读法排序后取各种读法的最后一位组成新串。后缀数组裸题。 将字符串倍长后用后缀数组排序即可。 注意若传入下标为0~n-1的字符串(下标n处为’\0’),传入SA函数中的串长应为n+1,排序后结果亦存在于sa[0…n]中。

2016-10-27 06:47:12

阅读数:88

评论数:0

BZOJ 1082, 栅栏

二分+搜索。 二分可能得到的符合条件的木板数,再搜索验证。 爆搜的姿势很要紧,写一个美观一点的搜索不仅复杂度小而且方便剪枝…… 搜索时优先匹配较小的木板,显然若较小木板都无法满足则较大木板也无法满足。剪枝一:排序并删除小于最小木板的木材和大于最大木材的木板。 剪枝二:搜索时记录当前已浪费的...

2016-10-23 21:04:22

阅读数:86

评论数:0

BZOJ 1003, 物流运输

动态规划+最短路。 状态转移方程为f[i]=min(f[j-1]+d[m]*(i-j+1)+k),1≤j≤i≤n。d[m]为每次状态转移计算所得当前可行的最短路花费。

2016-10-12 07:48:28

阅读数:192

评论数:0

BZOJ 1026, Windy数

求区间[A,B]中相邻位数字之差均大于1的元素个数。 数位DP。 第一次写这中类型的DP题,细节处理上还是有很多盲点,花了不少时间来调试。 solve(b+1)-solve(a)相较于solve(b)-solve(a-1)好处在于可以不必单独处理匹配至最后一位的情形。

2016-10-11 19:58:08

阅读数:63

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭