Problem 2641 --Bitset I - Bit Flag

2641: Bitset I - Bit Flag

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

Bit Flag 

それぞれがONまたはOFFであるn個のフラグで決定される「状態」は、0,1,…,n−1 番目のフラグを1(ON)または0(OFF)で表した、1つのビット列で表すことができます。 ビット列は各桁が0または1である2進数として表されるため、状態は対応する1つの10進数の整数値として管理することができます。

 64個のフラグからなる状態を管理するビット列に対して、以下の種類の操作を行ってください。ただし、初期状態でビット列の全てのフラグはOFFになっているものとします。

 test(i): i番目のフラグの状態がONの場合1、OFFの場合0を出力する 

set(i): i番目のフラグをONにする

clear(i): i番目のフラグをOFFにする 

flip(i): i番目のフラグを反転する 

all: 全てのフラグがONになっている場合1、なっていない場合0を出力する

any: 何れかのフラグがONになっている場合1、なっていない場合0を出力する

none: 全てのフラグがOFFになっている場合1、なっていない場合0を出力する 

count: ONになっているフラグの数を出力する val: 状態の整数値を出力する

入力は以下の形式で与えられます。

 q 

query1 

query2

 : 

queryq

 各クエリqueryiは 

0  i 

または

1  i 

または 

2  i 

または 

3  i 

または 

4

 または 

5

 または

 6 

または 

または

 8 

の形式で与えられます。最初の数字0, 1,...,8 は操作の種類を示し、それぞれtest(i), set(i), clear(i), flip(i), all, any, none, count, val を表します。

各test, all, any, none, count, val操作ごとに、操作結果を1行に出力してください。
14
1 0
1 1
1 2
2 1
0 0
0 1
0 2
0 3
3 3
4
5
6
7
8
1
0
1
0
0
1
0
3
13

1≤ q≤ 200,000

 0≤ i< 64

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

本题记录 用 户(点击查看用户) 运行号(点击购买题解) 时 间
算法最快[$23 $ms] 干活了 1061867 2024-01-14 07:34:30
内存最少[$1192 $KB] 郭菡 1058876 2024-01-08 16:02:55
第一AC AOJ大管家 338471 2018-12-05 20:38:54
第一挑战 AOJ大管家 338457 2018-12-05 20:31:30

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

竞赛编号 竞赛名称 竞赛时间 访问比赛
1790 2023-2024-1学期《程序设计技能实训》博弈论、二进制和位运算【23计算机】 2023-12-18 00:00:00 请登录