数据结构—ST表
文章平均质量分 78
Ezereal
这个作者很懒,什么都没留下…
展开
-
hdu 5726 GCD (二分+ST表)★
题目大概说给一个包含n个数的序列,多次询问有多少个区间GCD值等于某个区间的gcd值。 任何一个区间不同的GCD个数是log级别的,因为随着右端点向右延伸GCD是单调不增的,而每次递减GCD至少除以2。 考虑固定左端点,最多就nlogn种GCD,可以直接把所有区间GCD值预处理出来,用map存储各种GCD值的个数,查询时直接输出。 具体是这样处理的:枚举左端点,进行若干次二分查找,看当原创 2016-08-06 10:10:39 · 923 阅读 · 0 评论 -
Codeforces Round #371 (Div. 1) D. Animals and Puzzle 二维倍增 ★ ★ ★
题意 给你一个01矩阵,然后Q次询问,每次询问一个矩形区域中,最大的全一正方形的边长是多少。 题解: 首先考虑Dp,dp[i][j]表示以(i,j)位置为右下角,最大的正方形边长是多少,显然dp[i][j]=min(dp[i-1][j],dp[j][i-1],dp[i-1][j-1])+1 然后我们做出这个dp之后,我们怎么做呢? 直接二分答案,假设我们二分的答案为mid转载 2016-10-16 21:06:47 · 362 阅读 · 0 评论 -
Codeforces Round #353 (Div. 2)E. Trains and Statistic(ST表+贪心)
题意:有n个车站,每个车站有一个可达区间[i+1,ai],问所有车站的最小换站距离之和。 分析:设i为起点,k为[i+1,a[i]]中a[k]最大的车站编号,则对于任意j>ai,选择从k换站一定是最好的。 #include #include #include #include #include #include #include #include #include #原创 2016-10-03 19:39:45 · 338 阅读 · 0 评论