B]競技プログラミングhttps://atcoder.jp/contests/cpsco2019-s4/tasks/cpsco2019_s4_b解説https://atcoder.jp/contests/cpsco2019-s4/submissions/52850482日を選んで会議をするが、その選び方を全探索する。a日目とb日目の少なくともいずれかに出席可能な社員の人数が知りたい。判定方法は色々あると思うが、ビットを用いた解法を紹介する。これは、集合をビットに変換して考えるもので、応用が聞くので知らない場合はこの機会に覚えるといい。集合をビットで表現するやり方がある。「下位iビット目が1である→i番目が集合に含まれる」というルールでビットを立てる。000000のような感じ。d日目に参加できる人の集合」を作る。bit[b]とかける。これはビットのOR演算であるが、各ビットで01,10,11の場合に1になるという計算でまさしく今要求されている条件になっている。OR演算を取って、1が立っている個数を数えると参加できる人数になる。これは、__builtin_popcount関数を使えばいい。_MSC_VERこれでうまくやろう。B]月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。