摘要: 这是一场比赛的 T4T4 ,身为蒟蒻的我当然没有想出来。 后来对基环树有了一点了解之后就来肝这道题。 首先对于一条边,只有两种情况 1.在环上,那么这个环只有全部正向或全部反向才可以成立,而总方案数显然是 2m ,其中 mm 是环上的边数,所以方案数就是 2m-2 2.不在环上,那么这种边就可以随意 阅读全文
posted @ 2019-10-05 21:52 Coder_cjh 阅读(132) 评论(0) 推荐(0) 编辑
摘要: RT,正解居然是暴搜,我用的是Hamilton,结果炸了 Code Mine 正解 太炸心态了 阅读全文
posted @ 2019-10-05 21:03 Coder_cjh 阅读(145) 评论(0) 推荐(0) 编辑
摘要: Solution1 Solution 2 阅读全文
posted @ 2019-10-04 21:29 Coder_cjh 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 这一题写的时候也是懵逼的,想到了大概思路 首先的操作肯定是处理出以 ii 为结尾的最长连续上升序列 那么接下来最朴素的算法可以达到 O(N^2) 有没有更快的做法? 考虑我们枚举的是前 ii 项,那么有些很明显无用的东西被重复枚举了 如果 a[i]>a[j] 并且 g[i]<=g[j] ,那么选 i 阅读全文
posted @ 2019-10-04 19:51 Coder_cjh 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 这道题我用了扫描法,悬线法还没有填坑 首先想到尽量减少枚举量,也就是尽量让每个矩形都是有意义的,那么只有障碍点边缘有价值,所以只需要从左到右扫描一遍,得到的全部都是有意义的。 那么这种方法是否还有遗漏呢? 答案是肯定的 因为我们从左到右搜,肯定是以左边为准线,那么如果一直延伸到右边,那么如果是右边延 阅读全文
posted @ 2019-10-04 19:29 Coder_cjh 阅读(196) 评论(0) 推荐(0) 编辑
摘要: Step 1 首先考虑链状的情况,也就是链状 ++++++++ ++++++++ P.S : ++ 表示使用的子段 可以考虑用中途相遇法,用 g[i] 表示以 ii 为结尾分界线,之前最大子段和, 以 h[i] 表示以 ii 为结尾分界线,之后最大子段和 那么答案也就是 g[i]+h[i+1] (不 阅读全文
posted @ 2019-10-04 17:42 Coder_cjh 阅读(267) 评论(0) 推荐(0) 编辑
摘要: Solution Step 1 考试的时候SB想到了异或…… 首先复杂度肯定是线性,否则无法满足。 Step 2 区间操作,考虑转为差分,变成单点操作。 那么如果 s=e ,就是普通的差分 如果不是,也就是差分数组每次加上同一个数,考虑维护差分数组的差分数组。 每次加上公差,最后统计。 修改 O(1 阅读全文
posted @ 2019-10-04 11:44 Coder_cjh 阅读(186) 评论(0) 推荐(0) 编辑
摘要: Johnson排序 思路使用邻项交换法证明,以min(a1,a2)<min(b1,b2)为关键字排序。 注意细节 阅读全文
posted @ 2019-10-02 11:49 Coder_cjh 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 似乎又想到3紫1黑 其实是两道不相关的题目,区间选点问题,给了我们O(N2)的复杂度,那就很好确定了,我们可以考虑尽量让一棵树发挥最大价值,放在尾部,直到满足要求为止。 具体实现 Code 阅读全文
posted @ 2019-10-02 11:32 Coder_cjh 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 首先,根据数据范围,可以得到这是一题O(N2) 考虑贪心 发现行和列是不相关的,于是可以把他们分成两个一维区间问题,也就是在线段中选出点使得每个线段中都有一个点,求出方案。 先考虑尽量不对后面造成影响,也就是留后路,所以前面要尽量选靠前的,按照右端点排序,分别处理。 最后记得按原序号输出。 阅读全文
posted @ 2019-10-02 11:17 Coder_cjh 阅读(119) 评论(0) 推荐(0) 编辑