問題一覧 > 通常問題

No.803 Very Limited Xor Subset

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 72
作問者 : tempura_pp / テスター : heno239
13 ProblemId : 2818 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2019-03-17 20:14:43

問題文

henoくんは長さNの整数列A1, A2,, ANと整数Xを持っています。 henoくんは以下の問題を考えていました。

A1, A2,,ANの中から0個以上を選んで、選んだすべての整数のビットごとの排他的論理和を計算する。 計算結果がXとなるような整数の選び方は何通りあるか?」

henoくんは排他的論理和が大好きなのでこの問題は少し簡単すぎました。そこでさらに以下の形式のいずれかで表される 条件をM個加えることにしました。

  • 0 l r : Al, Al+1,, Arの中から選ぶ個数は偶数個(0個でもよい)。
  • 1 l r : Al, Al+1,, Arの中から選ぶ個数は奇数個。
M個の条件がすべてみたされるように0個以上の整数を選び、それらの排他的論理和をXにする方法が何通りあるかを、 109+7で割った余りを求めてください。ただし、0個選んだときの排他的論理和は0であるとします。

入力

N M X
A1A2AN
type1 l1 r1
type2 l2 r2

typeM lM rM

  • 1N300
  • 0Mmin(300,N(N+1)2)
  • 0X, Ai109
  • typei = 0, 1
  • 1liriN
  • ijならば(li, ri)(lj, rj)
  • 与えられる入力はすべて整数

出力

条件をみたす整数の選び方の個数を109+7で割った余りを1行に出力してください。

サンプル

サンプル1
入力
4 2 3
1 1 2 2
0 2 3
0 1 4
出力
2

すべての条件をみたす選び方は{a1, a4}, {a2, a3} の2通りです。

サンプル2
入力
4 1 3
1 1 2 2
1 1 4
出力
0

全体から奇数個を選んでなおかつ排他的論理和を3にすることはできません。

サンプル3
入力
7 3 2
1 2 3 4 5 6 7
0 2 4
0 5 6
1 2 6
出力
0

サンプル4
入力
15 5 12582921
12582923 10485775 5242888 9437185 3145743 10485768 13631489 2097158 11534339 15 14680065 6291461 7340039 10485764 7340035
1 4 11
0 5 6
0 13 15
0 1 10
0 8 11
出力
8

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