競技プログラミングにハマるプログラマのスレ 258 (309レス)
1-

253: 11/15(土)22:49 AAS
全国 -240 -140 540 1860 1080 2240 1940
JAP -400 -100 520 1740 1100 2200 1900
254: 11/15(土)22:50 AAS
D青G青でドカ笑い
んなわけねえだろ死ね
255: 11/15(土)22:52 AAS
G ACL使ってないインコはまあ怪しいな
256: 11/15(土)22:53 AAS
ほなratedJAP人狼するか
257: 11/15(土)22:54 AAS
highlighterが釣れたんだが
258: 11/15(土)22:55 AAS
今回だけ人狼すんの絶対お前が冷えたからだろ
これまでサボってた分も合わせて漁ってどうぞ
259: 11/15(土)22:58 AAS
遅刻してunratedだったからGPTに解かせてたんだが、Fだけうまく解いてくれないわ

# A
与えられた 3 つの数字 A, B, C を降順にソートします。
ソート後を大きい方から順に x, y, z とすると、3 桁の整数 xyz が、A, B, C を並べ替えて作れる整数の中で最大になります。
要素数は 3 つだけなので、計算量は定数時間 O(1) です。

# B
X の各桁の数字を取り出して、昇順(小さい順)に並べます。
このとき、先頭が 0 でなければ、その並びを左から連結した数が条件を満たす最小の整数です。
先頭が 0 になってしまう場合は、列の中から最初に現れる 0 以外の数字を探し、それと先頭の 0 を入れ替えます。先頭を「最も小さい非 0」の数字にし、残りは昇順のままにすることで、先頭が 0 でない並べ替えの中で最小の整数になります。
桁数を d とすると、ソートに O(d log d) 時間がかかりますが、d は小さいので十分高速に解くことができます。

# C
D = Y − X, g = gcd(D, X), D’ = D / g とおきます。全員の重さが等しいなら D·(Bi − Bj) = X·(Aj − Ai) より、すべての i について Ai ≡ A1 (mod D’) が必要なので、これをまず確認し、1 つでも外れたら -1 です。
条件を満たすとき、子 1 を基準に D’·(Bi − B1) = X’·(A1 − Ai) (X’ = X / g) から Bi = B1 + Di (Di は前計算) と表せます。
各 i について 0 ≤ Bi ≤ Ai ⇔ -Di ≤ B1 ≤ Ai − Di なので、B1 が取り得る区間の共通部分 [L, R] を求め、L > R なら不可能なので -1 を出力します。
可能なとき、大きい飴の総数 ΣBi = N·B1 + ΣDi は B1 に対して単調増加なので、B1 = R として ΣBi を計算すればよく、計算量は O(N) です。
260: 11/15(土)22:58 AAS
# D
初期状態の黒マス集合は 1 個の長方形 [0, X − 1] × [0, Y − 1] です。
各大嵐は、平面を直線 x = Ai(または y = Ai)で 2 つに分け、一方を上(または右)、他方を下(または左)へ平行移動させる全単射なので、黒マス集合は「互いに重ならない長方形の集合」として表現し続けられます。
1 回の大嵐で各長方形は高々 2 個に分割されるため、長方形の総数は高々 2^N(N ≤ 14)です。
最終的な長方形集合に対し、2 つの長方形がマスの辺を共有する(x 区間が重なり y 距離 1、または y 区間が重なり x 距離 1)ときに Union-Find で連結させます。
各連結成分の面積は、その成分に属する長方形の面積の総和として求まり、個数と面積を昇順に出力すればよいです。

# E
数列の順番は関係なく,値の多重集合だけを見ればよいことに気付きます。
l ≤ r のとき,max(l, min(r, a)) は a<l なら l,l≤a≤r なら a,a>r なら r なので,
答えは「a<l の個数×l」+「l≤a≤r の総和」+「a>r の個数×r」で計算できます。
0〜5×10^5 の値ごとに個数と総和を Fenwick 木 2 本で管理し,prefix 和から上式を求めます。
l>r のときは max(l, min(r, a))≡l となるため,答えは常に N×l です。
更新クエリは古い値を 1 個減らし新しい値を 1 個増やすだけなので,各操作は O(log M),全体計算量は O((N+Q)logM) となります。

# F
うんち

# G
二重和を b ごとにまとめ、H[b] = ?_a c_A[a]·C(a, b) を全 b について求める。
C(a, b) = a!/(b!(a-b)!) より、H[b] = inv(b!)·?_{t≥0} (c_A[b+t]·(b+t)!)·inv(t!)。
A’[a] = c_A[a]·a!、F[t] = inv(t!) とおくと、右辺は A’ と F の反転畳み込みで一括計算できる。
A’ を反転して NTT 畳み込み conv を求め、H[b] = inv(b!)·conv[V-b](V=max(A_i, B_j))。
最終答えは S = ?_b c_B[b]·H[b]。
前計算 O(V)、畳み込み O(V log V)、合計 O(V log V)。
998244353 は NTT 可能な素数なので安全に実装できる。
261: 11/15(土)22:59 AAS
アンレでもコンテスト時間のGPTは規約違反だがお前のAtCIDは
262: 11/15(土)23:00 AAS
あれ、 ?_ が 農に化けた?

# G
二重和を b ごとにまとめ、H[b] = ?_a c_A[a]·C(a, b) を全 b について求める。
C(a, b) = a!/(b!(a-b)!) より、H[b] = inv(b!)·?_{t≥0} (c_A[b+t]·(b+t)!)·inv(t!)。
A’[a] = c_A[a]·a!、F[t] = inv(t!) とおくと、右辺は A’ と F の反転畳み込みで一括計算できる。
A’ を反転して NTT 畳み込み conv を求め、H[b] = inv(b!)·conv[V-b](V=max(A_i, B_j))。
最終答えは S = ?_b c_B[b]·H[b]。
前計算 O(V)、畳み込み O(V log V)、合計 O(V log V)。
998244353 は NTT 可能な素数なので安全に実装できる。
263: 11/15(土)23:01 AAS
ガイジと申しますん
264: 11/15(土)23:01 AAS
F解いてるジェネルシは信用できる
265: 11/15(土)23:03 AAS
新スレ長の悪口言うな
266: 11/15(土)23:03 AAS
インコ農法ってありそう
267: 11/15(土)23:04 AAS
旧スレ長~🥺
268: 11/15(土)23:04 AAS
Gの農のところは、総和記号シグマ で読み替えてくれ
269: 11/15(土)23:05 AAS
GPT使ってないが順位表見たらFよりG行かざるをえなかった
俺はGPTerの被害者なんだ信じてくれ
270: 11/15(土)23:05 AAS
F解いてる暖色は実力確かだろうな
271: 11/15(土)23:06 AAS
XOR回廊に次ぐホワイトリスト入り確定か
272: 11/15(土)23:06 AAS
FスキップしてGだけ解いてるやつは人狼の疑いあり
273: 11/15(土)23:07 AAS
このF GPTが解けないのまあまあカスじゃね?
結局典型に毛が生えた問題か数学問しか強くないし全然ギュられてねーじゃねーか
274
(1): 11/15(土)23:08 AAS
何度も試行錯誤してたらやっとF解いてくれたわ
たぶん正しい解法だよな

平均 M = (?Ai)/N を計算し,割り切れなければ -1.
di = Ai−M(総和 0)とおき,di≠0 の添字だけを扱う.
「操作 1 回=重み付き有向辺 1 本」と見ると,各連結成分は少なくとも(頂点数−1)本の辺を要し,スパン木で等号達成.
よって di≠0 の集合を「総和 0 の部分集合」に分割したときの成分数を最大化すれば,最小操作回数は m−(成分数)となる.
これは部分集合 DP:dp[mask]=max_{sum[s]=0, s⊆mask}(1+dp[mask\s]) を最下位ビット固定で計算.
復元は各成分で中心 r を取り,正 di を r に集め,次に r から負 di へ配ると |S|−1 回で実現できる。
275: 11/15(土)23:09 AAS
今年中にtouristに勝つとか言ってなかったか、OpenAI
黄色以下虐殺みたいな中途半端な状態でずっと停滞するんなら、むしろ競プロ上位層の価値上がりそう
276: 11/15(土)23:09 AAS
F解いてる57人のジャップ、確かによく見るイツメンジェネルシばかりだな
現代において真に競プロをやれてる生き残りはこいつらだけだろうな
277: 11/15(土)23:09 AAS
>>274
ちょっと違うくね?
278: 11/15(土)23:10 AAS
hiro1729君がF解いてて笑顔止まらん
俺は信じてたぞ
279: 11/15(土)23:10 AAS
今度は シグマA が 尿になったわ
シグマの文字化けがおもしろすぎる
280: 11/15(土)23:10 AAS
尿iは草
俺もコンテスト中に使うか
281: 11/15(土)23:11 AAS
競プロをやれてる=GPTを使ってない かつ GPTが解けない問題を解ける なので
282: 11/15(土)23:11 AAS
部分集合DPとかビットDPそのものに到達できるのはインコでも出来るため
実装が大事です
1-
あと 27 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.015s