摘要: T1: 将区间按左端点排序,点排序。 依次扫每一个点,将所有满足条件的区间装入堆中,弹掉所有过期的区间。 每次贪心取右端点最小的区间。 时间复杂度$O(nlogn)$。 T2: 把树放在森林中考虑。 设$dp[i][j]$表示$i$个点的森林,有$j$个点在第一棵树的概率。 然后$dp[i][j]= 阅读全文
posted @ 2019-10-15 17:21 hz_Rockstar 阅读(237) 评论(0) 推荐(0) 编辑
摘要: T1: 直接模拟。 每次操作分为移动,不动位置合并,移动三个步骤。 时间复杂度$O(n^2m)$。 T2: 结论:最优子序列一定由一个单调上升序列和一个单调下降序列组成。 证明: 如果同时存在多个单升区间和单降区间。 当两个相同时,只保留一个平均数不变; 其他情况下去掉小的那个一定最优。 所以求一个 阅读全文
posted @ 2019-10-15 17:04 hz_Rockstar 阅读(169) 评论(0) 推荐(0) 编辑
摘要: T1: 发现$n-m$极小。 将左括号看作1,右括号看作-1, 设$dp[i][j]$为考虑了$i$为,括号总和为$j$的方案数,期间要保证$j$时刻大于0。 枚举左侧的长度和左侧的括号和,可以算出右侧信息。 要处理出$s$中出现的括号和最小值$tot$,左侧枚举的括号和不得小于$tot$,不然会有 阅读全文
posted @ 2019-10-15 16:47 hz_Rockstar 阅读(170) 评论(0) 推荐(0) 编辑
摘要: T1: 直接搜索子集复杂度太高,考虑meet in the mid。 先将两段内部的答案处理出来,暴力枚举子集即可。 将所有数分成两半,在前一半里枚举集合和子集,在后一半里枚举集合,判断前一半的子集是否为并集的一半,再反过来枚举一遍。 时间复杂度$O(6^{\frac{n}{2}})$。 T2: 先 阅读全文
posted @ 2019-10-15 16:22 hz_Rockstar 阅读(142) 评论(0) 推荐(0) 编辑