题目名称 | 2879. [POJ 1830]开关问题 |
---|---|
输入输出 | switch.in/out |
难度等级 | ★★★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 128 MiB |
测试数据 | 1 |
题目来源 | LGLJ 于2019-09-10加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:11, 提交:34, 通过率:32.35% | ||||
LGLJ | 100 | 0.000 s | 0.00 MiB | C++ |
LGLJ | 100 | 0.000 s | 0.00 MiB | C++ |
op_组撒头屯 | 100 | 0.000 s | 0.00 MiB | C++ |
HeSn | 100 | 0.000 s | 0.00 MiB | C++ |
牛先生 | 100 | 0.000 s | 0.00 MiB | C++ |
yrtiop | 100 | 0.000 s | 0.00 MiB | C++ |
超人 | 100 | 0.000 s | 0.00 MiB | C++ |
嗨嗨嗨 | 100 | 0.000 s | 0.00 MiB | C++ |
syzhaoss | 100 | 0.000 s | 2.42 MiB | C++ |
syzhaoss | 100 | 0.001 s | 2.43 MiB | C++ |
本题关联比赛 | |||
SBOI摆烂比赛① |
关于 开关问题 的近10条评论(全部评论) |
---|
有 $N$ 个相同的开关,每个开关都与某些开关有着联系,每当你打开或者关闭某个开关的时候,其他的与此开关相关联的开关也会相应地发生变化,即这些相联系的开关的状态如果原来为开就变为关,如果为关就变为开。你的目标是经过若干次开关操作后使得最后N个开关达到一个特定的状态。对于任意一个开关,最多只能进行一次开关操作。你的任务是,计算有多少种可以达到指定状态的方法。(不计开关操作的顺序)
输入第一行有一个数 $K$,表示以下有 $K$ 组测试数据。
每组测试数据的格式如下:
第一行 一个数 $N(0 < N < 29)$
第二行 $N$ 个 $0$ 或者 $1$ 的数,表示开始时 $N$ 个开关状态。
第三行 $N$ 个 $0$ 或者 $1$ 的数,表示操作结束后 $N$ 个开关的状态。
接下来 每行两个数 $I\ J$,表示如果操作第 $I$ 个开关,第 $J$ 个开关的状态也会变化。每组数据以 $0\ 0$ 结束。
如果有可行方法,输出总数,否则输出“Oh,it's impossible~!!” 不包括引号
2 3 0 0 0 1 1 1 1 2 1 3 2 1 2 3 3 1 3 2 0 0 3 0 0 0 1 0 1 1 2 2 1 0 0
4 Oh,it's impossible~!!
第一组数据的说明:
一共以下四种方法:
操作开关 1
操作开关 2
操作开关 3
操作开关 1、2、3 (不记顺序)
为保护版权,此处仅包含 POJ 原题测试数据中的一部分。
通过这些数据,不代表程序能够通过 POJ 上的测试。
这些数据仅供个人学习、调试,禁止用于任何商业用途。