Processing math: 100%
祝同学们学习进步,编程快乐!
Problem 2642 --Bitset I - Bit Mask

2642: Bitset I - Bit Mask

"
Time Limit 5 秒/Second(s) Memory Limit 512 兆字节/Megabyte(s)
提交总数 38 正确数量 22
裁判形式 标准裁判/Standard Judge 我的状态 尚未尝试
难度 分类标签 STL

Bit Mask

A state with nn flags of ON or OFF can be represented by a sequence of bits where 0,1,...,n10,1,...,n−1 th flag corresponds to 1 (ON) or 0 (OFF). The state can be managed by the corresponding decimal integer, because the sequence of bits is a binary representation where each bit is 0 or 1.

On the other hand, a mask is a special bit sequence which can be used to set specified bits of a given bit sequence to ON/OFF. It can also be used to extract/exclude a bit sequence based on a specified pattern.

Given a sequence of bits with 64 flags which represent a state, perform the following operations using a set of pre-defined masks. Note that each flag of the bits is initialized by OFF.

  • test(i): Print 1 if ii-th flag is ON, otherwise 0
  • set(m): Set flags specified by mask mm to ON
  • clear(m): Set flags specified by mask mm to OFF
  • flip(m): Inverse flags specified by mask mm
  • all(m): Print 1 if all flags specified by mask mm are ON, otherwise 0
  • any(m): Print 1 if at least one flag specified by mask mm is ON, otherwise 0
  • none(m): Print 1 if all flags specified by mask mm are OFF, otherwise 0
  • count(m): Print the number of flags specifed by mask mm with ON
  • val(m): Print the decimal value of the state specified by mask m


The input is given in the following format.

nn mask0mask0 mask1mask1 : maskn1maskn−1 qq query1query1 query2query2 : queryqqueryq 

nn represents the number of masks. maskimaski represents state of ii-th mask and is given in the following format:

kk b0b0 b1b1 ... bkbk 

kk is the number of ON in the bits. The following kk integers bjbj show that bjbj-th bit is ON.

queryiqueryi represents ii-th query and is given in the following format:

0 ii 

or

1 mm 

or

2 mm 

or

3 mm 

or

4 mm 

or

5 mm 

or

6 mm 

or

7 mm 

or

8 mm 

The first digit 01,...,8 represents the operation test(i), set(m), clear(m), flip(m), all(m), any(m), none(m), count(m) or val(m) respectively.


Output

Print the result in a line for each test, all, any, none, count and val operation.


3
3 0 1 3
1 3
3 0 1 2
8
1 0
2 1
3 1
4 2
5 2
6 2
7 2
8 2
0
1
0
2
3

  • 1n101≤n≤10
  • 1k641≤k≤64
  • 1q200,0001≤q≤200,000
  • 0i<640≤i<64
  • 0m<n0≤m<n



推荐代码 查看2642 所有题解 上传题解视频得图灵币

本题记录 用 户(点击查看用户) 运行号(点击购买题解) 时 间
算法最快[19 ms] 郭菡 1062531 2024-01-14 22:11:23
内存最少[1192 KB] 马佳俊 1162945 2025-01-09 21:23:09
第一AC thisislike 1053673 2023-12-26 19:03:36
第一挑战 AOJ大管家 437227 2019-06-08 13:06:47

赛题来源/所属竞赛 会津大学《C++ Programming II》 C++程序设计(高级)

竞赛编号 竞赛名称 竞赛时间 访问比赛
1849 2024-2025-1学期《程序设计技能实训》博弈论、二进制和位运算【24计算机】 2024-12-15 08:00:00 请登录
1790 2023-2024-1学期《程序设计技能实训》博弈论、二进制和位运算【23计算机】 2023-12-18 00:00:00 请登录
AOJ
祝同学们学习进步,编程快乐!