[GDKOI2023 提高组] 异或图

Luogu
IDLGP10104
Time4000ms
Memory1024MB
DifficultyP7
动态规划 DP2023广东容斥原理位运算集合幂级数,子集卷积
给定一张 $n$ 个点 $m$ 条边的无向图和一个长度为 $n$ 的数组 $a_1, a_2, \cdots , a_n$ 以及一个整数 $C$,你需要求出有多少个长度为 $n$ 的数组 $b$ 满足: 1. $0 ≤ b_i ≤ a_i,\forall 1 ≤ i ≤ n$。 2. 对于每条边 $(u, v)$,$b_u \ne b_v$。 3. $b_1 ⊕ b_2 ⊕ \cdots ⊕ b_n = C$,其中 $\oplus$ 代表异或。 答案对 $998244353$ 取模。 ## Input 第一行输入三个整数 $n, m, c$。 第二行输入 $n$ 个整数 $a_1, a_2, \cdots , a_n$。 接下来的 $m$ 行,每行输入两个正整数 $u, v$,表示一条无向边。 ## Output 一行一个整数表示答案。 [samples] ## Note 可行的 $b$ 数组有 $(0, 1, 3),(0, 2, 0),(1, 0, 3),(1, 2, 1)$ 四种。 对于所有数据,满足 $1 ≤ n ≤ 15$,$ 0 ≤ m ≤ \frac{n(n−1)}{2}$,$ 0 ≤ a_i, C ≤ 10^{18}$。 - Subtask 1 (20pts):$n ≤ 5$,$ 0 ≤ a_i, C ≤ 15$。 - Subtask 2 (50pts):$n ≤ 13$。 - Subtask 3 (10pts):$m = 0$。 - Subtask 4 (20pts):无特殊限制。
Samples
Input #1
3 1 2
1 2 3
1 2
Output #1
4
Input #2
4 6 2
7 11 14 0
1 2
1 3
2 3
2 4
4 1
4 3
Output #2
44
API Response (JSON)
{
  "problem": {
    "name": "[GDKOI2023 提高组] 异或图",
    "description": {
      "content": "给定一张 $n$ 个点 $m$ 条边的无向图和一个长度为 $n$ 的数组 $a_1, a_2, \\cdots , a_n$ 以及一个整数 $C$,你需要求出有多少个长度为 $n$ 的数组 $b$ 满足: 1. $0 ≤ b_i ≤ a_i,\\forall 1 ≤ i ≤ n$。 2. 对于每条边 $(u, v)$,$b_u \\ne b_v$。 3. $b_1 ⊕ b_2 ⊕ \\cdots  ⊕ ",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 4000,
      "memory_limit": 1048576
    },
    "difficulty": {
      "LuoguStyle": "P7"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP10104"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "给定一张 $n$ 个点 $m$ 条边的无向图和一个长度为 $n$ 的数组 $a_1, a_2, \\cdots , a_n$ 以及一个整数 $C$,你需要求出有多少个长度为 $n$ 的数组 $b$ 满足:\n\n1. $0 ≤ b_i ≤ a_i,\\forall 1 ≤ i ≤ n$。\n2. 对于每条边 $(u, v)$,$b_u \\ne b_v$。\n3. $b_1 ⊕ b_2 ⊕ \\cdots  ⊕ ...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments