/ Vijos / 题库 /

开关问题

开关问题

时间限制:1秒  内存限制:256M


【题目描述】

  有 \(n\) 个相同的开关,每个开关都与某些开关有着联系,每当你打开或者关闭某个开关的时候,其他的与此开关相关联的开关也会相应地发生变化,即这些相联系的开关的状态如果原来为开就变为关,如果为关就变为开。

  你的目标是经过若干次开关操作后使得最后 \(n\) 个开关达到一个特定的状态。对于任意一个开关,最多只能进行一次开关操作。

  你的任务是,计算有多少种可以达到指定状态的方法。(不计开关操作的顺序)

【输入格式】

  第一行 一个数 \(n\),表示开关的数目。
  第二行 \(n\) 个 0 或者 1 的数,表示开始时 \(n\) 个开关状态。
  第三行 \(n\) 个 0 或者 1 的数,表示操作结束后 \(n\) 个开关的状态。
  接下来 每行两个数 \(x\ y\),表示如果操作第 \(x\) 个开关,第 \(y\) 个开关的状态也会变化。输入以 0 0 结束。

【输出格式】

  如果有可行方法,输出总数,否则输出“Oh,it's impossible~!!” 不包括引号。

【输入输出样例1】

 Input

3
0 0 0
1 1 1
1 2
1 3
2 1
2 3
3 1
3 2
0 0

 Output

4

【输入输出样例2】

 Input

3
0 0 0
1 0 1
1 2
2 1
0 0

 Output

Oh,it's impossible~!!

【数据限制】

  对于 \(100\%\) 的数据,\(1≤n≤35\)

【来源】

  Mr.he**

信息

ID
2717
难度
(无)
分类
动态规划 | 递推 | 其他 | 分治快速幂线性代数 | 矩阵乘法 点击显示
标签
(无)
递交数
0
已通过
0
通过率
?
被复制
2
上传者