Neterukun's Library

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub Neterukun1993/Library

:heavy_check_mark: 2-SAT
(Graph/misc/TwoSAT.py)

Depends on

Verified with

Code

from Graph.Decomposition.SCC_Tarjan import StronglyConnectedComponents


class TwoSAT:
    def __init__(self, n):
        self.n = n
        self.scc = StronglyConnectedComponents(2 * n)
        self.ans = [False] * self.n

    def add_clause(self, i, f, j, g):
        self.scc.add_edge(2 * i + int(not f), 2 * j + int(g))
        self.scc.add_edge(2 * j + int(not g), 2 * i + int(f))

    def satisfy(self):
        self.scc.build()
        for i in range(self.n):
            if self.scc.labels[2 * i] == self.scc.labels[2 * i + 1]:
                return False
            self.ans[i] = self.scc.labels[2 * i] < self.scc.labels[2 * i + 1]
        return True

    def answer(self):
        return self.ans
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.12.4/x64/lib/python3.12/site-packages/onlinejudge_verify/documentation/build.py", line 71, in _render_source_code_stat
    bundled_code = language.bundle(stat.path, basedir=basedir, options={'include_paths': [basedir]}).decode()
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.12.4/x64/lib/python3.12/site-packages/onlinejudge_verify/languages/python.py", line 96, in bundle
    raise NotImplementedError
NotImplementedError
Back to top page