您当前的位置: 首页 >  游戏

不牌不改

暂无认证

  • 0浏览

    0关注

    422博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

[蓝桥杯][算法提高VIP]开灯游戏

不牌不改 发布时间:2021-08-07 11:02:16 ,浏览量:0

题目

题目链接

题解

二进制枚举。

这样的题做过一个了。

二进制的每一位表示开关的状态,总共9个开关,每个开关两种状态,因此2^9种情况。 枚举每一种情况,遍历此情况下每个开关是否进行操作,若操作,则将其能控制的灯的状态变为原来的反状态,不能控制的灯亮暗不变。 枚举的每种情况操作完后统计一下亮灯的数量,为4就输出。

代码
#include
using namespace std;

int s[10][10] = { // switch[i][j] 表示第i个开关是否对第j个灯有控制作用,同样的,对灯的暗灭状态进行异或可以实现开关对灯的控制 
				 {0},
				 {0, 0, 1, 0, 1, 0, 0, 0, 0, 0},
				 {0, 1, 0, 1, 0, 1, 0, 0, 0, 0},
				 {0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
				 {0, 1, 0, 0, 0, 1, 0, 1, 0, 0},
				 {0, 0, 1, 0, 1, 0, 1, 0, 1, 0},
				 {0, 0, 0, 1, 0, 1, 0, 0, 0, 1},
				 {0, 0, 0, 0, 1, 0, 0, 0, 1, 0},
				 {0, 0, 0, 0, 0, 1, 0, 1, 0, 1},
			 	 {0, 0, 0, 0, 0, 0, 1, 0, 1, 0}
				};
				  
int LED[10] = {0}, ans[10]; // LED[i]第i个灯的暗灭,ans[i]第i个开关的状态 

int main() {
	int n = (1            
关注
打赏
1662186765
查看更多评论
0.0376s