题目名称 | 507. 拯救 |
---|---|
输入输出 | savey.in/out |
难度等级 | ★☆ |
时间限制 | 1000 ms (1 s) |
内存限制 | 128 MiB |
测试数据 | 10 |
题目来源 | cqw 于2010-11-17加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:11, 提交:32, 通过率:34.38% | ||||
belong.zmx | 100 | 0.026 s | 0.88 MiB | Pascal |
donny | 100 | 0.026 s | 0.88 MiB | Pascal |
再见 | 100 | 0.029 s | 8.09 MiB | C++ |
ybh | 100 | 0.032 s | 1.26 MiB | Pascal |
苏轼 | 100 | 0.065 s | 6.42 MiB | C++ |
OIdiot | 100 | 0.073 s | 0.40 MiB | C++ |
belong.zmx | 100 | 0.135 s | 0.12 MiB | Pascal |
maxiem | 100 | 0.136 s | 5.84 MiB | Pascal |
nick09 | 100 | 0.145 s | 0.23 MiB | Pascal |
王者自由 | 100 | 0.145 s | 0.23 MiB | Pascal |
本题关联比赛 | |||
20101117 |
关于 拯救 的近10条评论(全部评论) | ||||
---|---|---|---|---|
Gray Code
|
正义之士被恶魔抓了,被关在小黑屋里,无法继续他的正义事业,你决定去拯救他。
关正义之士的小黑屋迅速被你打开,可是正义之士却被恶魔用一把锁给锁住了。这把锁包含了$N$个小锁。只有打开前$K-2$个锁,且锁上第$K-1$个锁,才能改变第$K$个锁的状态(打开或锁上该锁),第1个锁可以任意改变状态,当第1个锁锁上时第2个锁就可以改变状态。
为了知道你到底是要留下来开锁,还是“走为上”,你需要知道到底需要多少次操作才能开锁(打开或锁上一把锁算一次操作,只有当$N$个小锁都被打开进才算开了锁)。
第一行为一个$N$(小锁的个数,$1\leq N\leq 1000$)。
第二行为$n$个整数$a_1,a_2,\cdots,a_n$(每个都是0或者1),中间用单个空格隔开。如果是$a_i=1$,表示第$i$个锁是锁着的,反之表示该锁已被打开。
包括一个数,表示最少要操作的次数。
4 1 0 1 0
6
1010-->1110-->0110-->0100-->1100-->1000-->0000
对于40%的数据,有$N\leq 30$;
对于100%的数据,有$N\leq 1000$。