算法讲解
-
算法用途:
就是2判定性问题,是一种特殊的逻辑判定问题。有n个集合,每个集合里有两个元素且必须选一个(这里我们用\(A_i\),\(A_i'\)表示),再给出若干条限制条件,判断是否有解或者输出解。 -
算法流程
建边:只建必须满足该逻辑条件的边。
性质1:边满足传递性->原图满足对称传递性->图中的环分别对称
显然一个环内满足传递性,因此该环内的点判定性相同,我们将该图缩点(这里我们由A->S)。
性质2:新图中,同样具有对称传递性(同样反图也满足)。
性质3:若问题无解,则必然存在\(A_i\), \(A_i'\) ,使得\(A_i\), \(A_i'\)属于同一个环。(此性质可以解决很多只询问判定性的问题)
性质4:对于任意一对\(S_i\), \(S_i'\)的后代节点与\(S_i'\)的前代节点相互对称。
如果选择\(S_i\),那么对于所有\(S_i\) \(S_j\),\(S_j\)都必须被选择。(性质2)
而\(S_i'\)必定不可选,这样\(S_i'\)的所有前代节点也必定不可选(将这一过程称之为删除)。
因此,为了方便我们先建\(S\)的反图,用拓扑排序,传递不可选标记(即删除)即可。
标签:满足,传递性,判定,对称,sat,节点,性质 来源: https://www.cnblogs.com/bestime/p/14773143.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。