JAG2019 Day3
ABC はい
E DP
D 2SAT
H UFマージテク
G 期待値で式変形を頑張る
I 係数がパスカルの三角形になってる FFTでやる
J 行列を構築するやつ
F よくわからん
D
x_i = (iを集合に入れるならtrue) とする
XORについてのclosureを (not x_i) or (not x{i xor X}) と (x_i) or (x{i xor X}) の両方入れないといけないことに注意
AND, ORは部分集合の列挙でO(3n)でできる
https://onlinejudge.u-aizu.ac.jp/beta/review.html#JAGSummerCamp19Day3/3883568
E
dp[i問目まで][赤をj個][赤の残量k]
dp[n][i][j] で赤と黒それぞれ足りてれば chmin(ans, dp[n][i][j])
足りてるやつがなければ-1
累積和のindexでごちゃごちゃやるの初心者か?
https://onlinejudge.u-aizu.ac.jp/beta/review.html#JAGSummerCamp19Day3/3883738
H
c_iとd_iをつないだグラフで \sum_連結成分 min(頂点数,辺数) が答え
各頂点を根とする部分木を表すUnionFindと辺の集合を持ってマージテクでマージする
UnionFind全てにK色分の情報をもたせると終わるのでmapかunordered_mapで必要なところだけもつ
dfsの内部のマージ処理をmerge関数に切り分けたらREが消えた
RE: https://onlinejudge.u-aizu.ac.jp/beta/review.html#JAGSummerCamp19Day3/3884172
AC: https://onlinejudge.u-aizu.ac.jp/beta/review.html#JAGSummerCamp19Day3/3884159
スタック領域を広げるやつを使ったけどREだった
https://onlinejudge.u-aizu.ac.jp/beta/review.html#JAGSummerCamp19Day3/3884229
構造体をswapするのがまずいのかと思って参照渡ししてswapするのを書いたけどRE
https://onlinejudge.u-aizu.ac.jp/beta/review.html#JAGSummerCamp19Day3/3884250
わからん
G
連結成分の個数 = 頂点数 - 辺数
確率変数として
- 木の頂点が残るなら1で残らないなら0
- 木の辺が残るなら1で残らないなら0
と定める. についても を同様に定める.期待値の線形性より
となる.
は のとき0, のとき1/4となる.
は の端点に があるとき0,ないなら1/8となる.
は と の端点に共通する頂点番号があれば0,ないなら1/16となる.
https://onlinejudge.u-aizu.ac.jp/beta/review.html#JAGSummerCamp19Day3/3891209
I
畳み込みに帰着
これはNTTでやってる
https://onlinejudge.u-aizu.ac.jp/beta/review.html#JAGSummerCamp19Day3/3893071
NTTじゃなくてFFTでやったら落ちたので多分誤差
FFTでやって通ってるのもある https://onlinejudge.u-aizu.ac.jp/beta/review.html#JAGSummerCamp19Day3/3871633
long doubleにしたらFFTでも通った
実部と虚部にそれぞれ数列を埋め込むとFFT2回で畳み込みができる
A_x + iB_xをDFT したやつを掛け合わせて係数を合わせると畳み込みのDFTと一致することが確認できる
fft::multiply が本質
https://onlinejudge.u-aizu.ac.jp/beta/review.html#JAGSummerCamp19Day3/3895035
上位15bitと下位15bitに分割してそれぞれ畳み込むとdoubleで誤差が出ない範囲で収まると期待できる これはFFT4回 でできる https://min-25.hatenablog.com/entry/2017/09/23/085053
NTTで任意MOD畳み込みするより早い
fft::multiply_mod が本質
https://onlinejudge.u-aizu.ac.jp/beta/review.html#JAGSummerCamp19Day3/3895029
J
解説の通りに構築すると通ります どうやったら思いつくかは知りません
対角線で二等分して片方だけ構築すれば残りも自動的に決まる
https://onlinejudge.u-aizu.ac.jp/beta/review.html#JAGSummerCamp19Day3/3895278
F
解けません