問題一覧 > 通常問題

No.3508 OR Mapping

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 1024 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 20
作問者 : n_bitand_n_per_3 / テスター : Naru820 Nzt3 Solalyth
ProblemId : 13182 / CPCTF 2026: PPC (順位表) / 自分の提出
問題文最終更新日: 2026-04-17 18:01:35
CPCTF 2026: PPCの他の問題:

問題文

頂点に $1$ から $N$ までの番号が付いた、$N$ 頂点 $M$ 辺の単純有向グラフが与えられます。$i$ 番目の辺は頂点 $u_i$ から頂点 $v_i$ へ向かう有向辺です。

各頂点には $0$ 以上 $2^{K} - 1$ 以下の整数を書き込むことができるようになっており、はじめ、すべての頂点には $0$ が書き込まれています。

駒が $1$ つ頂点 $1$ においてあります。また、変数 $T$ があり、はじめ $T = 0$ です。

あなたは以下の操作を好きなだけ繰り返すことが出来ます。

  • 今駒が置かれている頂点を頂点 $i$ とする。頂点 $i$ から頂点 $j$ に向かう辺が存在するような頂点 $j$ を選び、駒を頂点 $j$ に移動させる。そして、$T$ に $1$ を足した後、頂点 $j$ に書き込まれている値を $x$ として、$x$ を $x\ \text{OR}\ (T \bmod 2^{K})$ に書き換える。ここで、$A\ \text{OR}\ B$ は $A$ と $B$ のビットごとの論理和を表す。

あなたの目的は全ての頂点について、書き込まれている値を $2^K-1$ にすることです。これが可能かどうかを判定してください。

制約

  • $1 \le N \le 5 \times 10^5$
  • $0 \le M \le \min \left( N(N-1) ,5 \times 10^5 \right)$
  • $1 \le K \le 51$
  • $1\le u_i , v_i \le N$
  • $u_i \ne v_i$
  • $i \ne j \Rightarrow (u_i,v_i) \ne (u_j,v_j)$
  • 入力は全て整数

入力

入力は以下の形式で標準入力から与えられます。
$N$ $M$ $K$
$u_1$ $v_1$
$u_2$ $v_2$
$\vdots$
$u_M$ $v_M$

出力

可能ならYes、そうでないならNoを1行で出力してください。

サンプル

サンプル1
入力
3 3 2
1 2
2 3
3 1
出力
Yes

頂点に書かれている数の列を頂点 $1,2,3$ の順に $A$ とします。

  • 駒を頂点1から頂点2に移動させる。$A = (0, 1, 0)$ になる。
  • 駒を頂点2から頂点3に移動させる。$A = (0, 1, 2)$ になる。
  • 駒を頂点3から頂点1に移動させる。$A = (3, 1, 2)$ になる。
  • 駒を頂点1から頂点2に移動させる。$A = (3, 1, 2)$ になる。
  • 駒を頂点2から頂点3に移動させる。$A = (3, 1, 3)$ になる。
  • 駒を頂点3から頂点1に移動させる。$A = (3, 1, 3)$ になる。
  • 駒を頂点1から頂点2に移動させる。$A = (3, 3, 3)$ になる。

このように移動することにより、全ての頂点に書き込まれている値を 3 にすることができるので、答えはYesです。

サンプル2
入力
3 3 2
1 2
2 3
1 3
出力
No

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。