题解 - [Luogu P4896]【Oier 们的烦恼】
这么好的题怎么能没有 "位掩码" 题解呢(滑稽
大致思路就是用一个 char 来记录老师是否在机房和学生是否被抓到(一共需要 3+5=8 位来记录,正好是一个 char), 再用一个 char 记录被抓到的学生的编号 , 就像这样:
1 | char in_room, dead; |
然而为了降低调试难度,我们可以用两个 char 分别记录老师和学生的状态,就像这样:
1 | char onlineT, onlineS, deadS; |
我们还需要定义一些函数来对它们进行操作,就像这样(这里以宏定义为例):
1 | #define _teacher_in(i) onlineT |= 1 << i //老师进机房 |
其他就没什么了,可以参照其他题解没错我就是懒(理直气壮