ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

模拟85 题解

2019-10-25 09:00:07  阅读:281  来源: 互联网

标签:树边 题解 偶环 区间 形成 奇环 非树边 模拟 85


A. 表达式密码

观察样例,发现答案就是将减法拆为一个减法和多个加法,于是就完了。

 

 

 

B. 电压机制

发现问题是认为一条边相邻的两个点颜色相同并不考虑这条边,问图能否二分图染色。

暴力做法是$O(nm)$的。

仔细想想就可以发现:

对于奇环,不能二分图染色,所以必须选择奇环上的边。

对于偶环,可以二分图染色,但如果选择了偶环上的边必死。

所以问题是有多少边被所有奇环包含并不被偶环包含。

部分分提示可以生成一棵树,并考虑所有的非树边形成的环。

非树边与树边形成环的贡献是比较好考虑的,树剖/树上差分等一些方法都可以维护。

然而非树边和非树边也可能形成环。

所以大力分类讨论,

1.两个非树边分别与树边形成奇环,那么两个非树边形成偶环。

因为两个奇环保证了只有重叠部分才有贡献,不考虑这个偶环是正确的。

2.两个非树边分别与树边形成偶环,那么两个非树边形成偶环。

两个偶环已经保证了所有树边都死了,不考虑这个偶环是正确的。

3.两个非树边分别与树边形成奇环和偶环,那么两个非树边形成奇环。

(1).奇环在上偶环在下,只有形成奇环的非树边可能会活,至于这个贡献留到下面。

(2).偶环在上奇环在下,偶环必死,原奇环仍然被现在形成的奇环包含。

 

可以得出结论是:非树边与非树边形成的环,如果不去考虑,对答案没有影响。

所以一遍$dfs$,保证每一条非树边都是返祖边,将会非常好做。

非树边对答案也可能产生贡献,但产生大小为1的贡献仅当非树边只与树边形成一个奇环。

因为一旦产生两个奇环,每一条非树边都不可能被覆盖两次。

 

 

 

C. 括号密码

对于区间不相交的情况:

当每个括号对整体造成$2$的贡献的时候,这个括号交换是不会亏的。

对于每一个区间,处理出左侧应该加入的左括号个数,右侧应该加入的右括号个数。

首先尝试自行交换解决。

解决不了的部分尽量与其它区间交换解决。这个交换可以用一个变量维护。

 

如果区间存在相交但不存在覆盖:

由一些前缀和关系,中间的交集必是平衡的。所以可以拆分为三个区间。

如果区间存在覆盖:

中间的一个区间是平衡的,大区间减去小区间的部分是平衡的。

总体来说,将每个覆盖区间集合相同的点视作一个序列。分别统计每个序列的答案就可以了。

标签:树边,题解,偶环,区间,形成,奇环,非树边,模拟,85
来源: https://www.cnblogs.com/skyh/p/11736185.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有