今回のEっぽい問題が出るとDiffが下がる現象勘弁してくれ
A - Divisible
https://atcoder.jp/contests/abc347/submissions/51800839
B - Substring
作った部分文字列を全部setに突っ込む
https://atcoder.jp/contests/abc347/submissions/51811274
C - Ideal Holidays
謎 解説読んでもしっくりこない...
D - Popcount and XOR
DPっぽいことをすればいい。
dp[i][j][k] := 上からi文字目時点でXのpop countがj、Yのpop countがkであるようなX, Yの組
iは60桁で固定すればいい。答えを一つ出力なので新たに出てきたら適当に上書きするのが楽。
https://atcoder.jp/contests/abc347/submissions/51852441
E - Set Add Query
こういう区間加算の問題のインフレが激しくてこまる。少なくとも2000人が溶けるような問題ではないと思うんですけど...
ちゃんと考察すればそんなに難しくなかった。あるタイミングでの配列の状態を得ようとすると大変だが、実際には配列の最終状態にしか興味がないので、どのタイミングで加算しても良い。ある値が集合に入れられたタイミングを保持しておけばその値が抜けるタイミングでどれだけ足せばよいかは、累積和を用いてO(1)でわかる。よって全体でO(Qlog(N))で解くことができる(logはsetへの追加や削除の分)。