結果

問題 No.2293 無向辺 2-SAT
ユーザー t98slidert98slider
提出日時 2023-05-09 02:17:15
言語 PyPy3
(7.3.15)
結果
MLE  
実行時間 -
コード長 1,037 bytes
コンパイル時間 196 ms
コンパイル使用メモリ 82,384 KB
実行使用メモリ 524,684 KB
最終ジャッジ日時 2024-11-25 16:27:23
合計ジャッジ時間 165,542 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 39 ms
60,668 KB
testcase_01 AC 54 ms
88,628 KB
testcase_02 AC 36 ms
60,108 KB
testcase_03 AC 554 ms
363,372 KB
testcase_04 AC 3,816 ms
269,352 KB
testcase_05 MLE -
testcase_06 TLE -
testcase_07 TLE -
testcase_08 TLE -
testcase_09 TLE -
testcase_10 TLE -
testcase_11 AC 2,303 ms
266,112 KB
testcase_12 TLE -
testcase_13 AC 850 ms
360,476 KB
testcase_14 AC 451 ms
90,444 KB
testcase_15 AC 500 ms
337,684 KB
testcase_16 AC 3,258 ms
272,632 KB
testcase_17 AC 673 ms
510,636 KB
testcase_18 TLE -
testcase_19 MLE -
testcase_20 AC 1,556 ms
275,188 KB
testcase_21 TLE -
testcase_22 AC 994 ms
281,084 KB
testcase_23 MLE -
testcase_24 MLE -
testcase_25 AC 796 ms
267,744 KB
testcase_26 AC 935 ms
281,480 KB
testcase_27 MLE -
testcase_28 MLE -
testcase_29 AC 1,238 ms
281,472 KB
testcase_30 MLE -
testcase_31 MLE -
testcase_32 TLE -
testcase_33 TLE -
testcase_34 TLE -
testcase_35 TLE -
testcase_36 TLE -
testcase_37 TLE -
testcase_38 TLE -
testcase_39 TLE -
testcase_40 TLE -
testcase_41 TLE -
testcase_42 TLE -
testcase_43 TLE -
testcase_44 TLE -
testcase_45 TLE -
testcase_46 TLE -
testcase_47 TLE -
testcase_48 TLE -
testcase_49 AC 2,312 ms
270,248 KB
testcase_50 AC 1,554 ms
269,540 KB
testcase_51 AC 1,111 ms
270,292 KB
testcase_52 AC 943 ms
271,908 KB
testcase_53 AC 836 ms
260,828 KB
testcase_54 AC 835 ms
259,012 KB
testcase_55 AC 856 ms
500,892 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

from sys import stdin
I = stdin.readline

J, R = int, range
X = I().split()
N, Q, P, p, w = J(X[0]), J(X[1]), 998244353, [], []
def r(i):
	m = p[i]
	while i != m:
		p[i] = i =p[m]
		m = p[i]
	return i
n = 0
def g(i, j):
	global n
	i, j = r(i), r(j)
	if i != j:
		if w[i] == w[j] : w[j] += 1
		if w[i] < w[j] : p[i] = j
		else: p[j] = i
		n -= 1
U, V, W, T, L, f = [0] * N, [0] * N, [0] * N, [(0,)] * Q, 0, pow(2, N, P)
while Q:
	for l in R(L): V[W[l]] = 0
	M, L, s = 0, 0, 1
	while Q:
		Q, X = Q - 1, I().split()
		t = J(X[0])
		if t == 3:
			T[M], M = ((t,)), M + 1
			break
		else:
			u, v = J(X[1]) - 1, J(X[2]) - 1
			if V[u] == 0: U[u], V[u], W[L], L = L, 1, u, L+1
			if V[v] == 0: U[v], V[v], W[L], L = L, 1, v, L+1
			T[M], M = ((t,u,v)), M + 1
	n = N * 2
	p = [i for i in R(n)]
	w = [0] * n
	for l in T[:M]:
		if l[0] == 3: print(f)
		else:
			if s:
				u, v = U[l[1]], U[l[2]]
				t = u + L
				if l[0] == 1: g(u,v), g(t,v+L)
				else: g(t, v), g(u, v + L)
				if p[r(u)] == p[r(t)] : s=0
			print(pow(2, n // 2, P)if s else 0)
0