[BOJ]11723話(ビットマスク)
1.質問
https://www.acmicpc.net/problem/11723
2.アイデア
ビットシールドで解決しました.
問題を解くときに生じる疑問は,配列を利用して問題を解くのにほとんど時間差がないことである.
メソッドメモリタイムビットマスク2024 KB 696 msアレイ2024 KB 704 ms
次のコードは標準I/O時間を短縮します(次のブログを参照)
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
使用は重要な問題です.
3.解法
1)利用110 GHT⭕-ビットマスクコード
1)演算子の優先度コード 注意事項
if文では、リレーショナル演算子の優先度がビット演算子より高いため、予想される操作は実現できません. <コメント>
ブログhttps://yjyoon-dev.github.io/boj/2021/06/30/boj-11723/
https://www.acmicpc.net/problem/11723
2.アイデア
ビットシールドで解決しました.
問題を解くときに生じる疑問は,配列を利用して問題を解くのにほとんど時間差がないことである.
メソッドメモリタイムビットマスク2024 KB 696 msアレイ2024 KB 704 ms
次のコードは標準I/O時間を短縮します(次のブログを参照)
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
使用は重要な問題です.
3.解法
1)利用110 GHT⭕-ビットマスク
#include <iostream>
#include <string>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int testcase;
cin >> testcase;
int S = 0;
while (testcase--) {
int num;
string str;
cin >> str;
if (str == "add") {
cin >> num;
S |= (1 << num);
}
else if (str == "remove") {
cin >> num;
S &= ~(1 << num);
}
else if (str == "check") {
cin >> num;
if (S & (1 << num)) cout << 1 << '\n';
else cout << 0 << '\n';
}
else if (str == "toggle")
{
cin >> num;
S ^= (1 << num);
}
else if (str == "all") {
S = -1;
}
else if (str == "empty") {
S = 0;
}
}
}
4. 🚫 に注意1)演算子の優先度
else if (str == "check") {
cin >> num;
if (S & (1 << num) == 1) cout << 1 << '\n';
else cout << 0 << '\n';
}
if文では、リレーショナル演算子の優先度がビット演算子より高いため、予想される操作は実現できません.
ブログhttps://yjyoon-dev.github.io/boj/2021/06/30/boj-11723/
Reference
この問題について([BOJ]11723話(ビットマスク)), 我々は、より多くの情報をここで見つけました https://velog.io/@pyh-dotcom/BOJ-11723-집합テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol