10 2019 档案
摘要:题意 给定一个序列,求最多的不相交区间满足区间和相同。 分析 从暴力的角度想,是枚举区间再求和,反过来想,直接记录每个和对应是那些区间,然后排个序求最大不相交即可。 代码 c++ include using namespace std; typedef long long ll; const int
阅读全文
摘要:A Rooms and Passages 题意 给n个数,从起点出发,一直往右走,遇到一个前面出现过其相反数的正数就停下,问对于每个起点都能走多少步。 分析 倒着递推,如果起点是正数,那么肯定可以走, 。 如果起点是负数,那就得看这个负数对应绝对值在后面出现的最靠前的位置, 而且还要看后面的负数所对
阅读全文
摘要:题意 给定一个序列,求有多少个最长连续子序列满足最大值减最小值之差不超过k。 分析 跟序列最大值最小值有关的可以想到单调栈,先预处理出每个数作为最大值能延伸的区间,然后枚举每个数作为最大值。 最大的满足条件的连续序列显然左边就是要在[le[i],i1]里找到大于等于a[i]k的最小值
阅读全文
摘要:题意 给定一棵树和根,每个点有点权,强制在线询问x子树里离x距离不超过k的最小点权。 分析 权值线段树合并的套路题,dfs,以深度作为下标,点权作为值,对每个点建立一颗权值线段树,然后回溯的时候合并到父节点的线段树上。 合并时维护最小值,查询时也是查询区间最小值。 内存给得多的情况下数组
阅读全文
摘要:题意 给一个字符串s,和n个子串t[i],两个人博弈,每次取出一个串t[i],在后面加入一个字符,保证新字符串仍然是s的子串,无法操作的人输。 分析 n个子串,类比于n堆石子,如果把子串t[i]在后面加若干字符能生成的子串看出一个状态,用一个数表示,那每次状态的变化,就类比于
阅读全文
摘要:A Amsterdam Distance 题意 求圆环上的两点距离。 分析 显然是沿半径方向走到内圈再走圆弧最短。 代码 C Collatz Conjecture 题意 n个数,求所有不同区间的gcd值的不同个数。 分析 序列的gcd问题经常就是暴力乱搞...不过姿势要对,因为gcd降得很快。 考虑
阅读全文