2012-09-09
SRM 555
Div1 Easy (250) CuttingBitString
問題
- ビット列が文字列で与えられる。
- 5のべき乗のビット列文字列に分割したとき、何個になるかを求める。
方針
- テーブル作ってメモ化かな
- まず文字列のテーブルを作る
- 5倍だから1倍と4倍=2bitシフトで足して作るか
- できた...時間かかりすぎ
- メモ化、若干バグる
- 提出
- Passed System Test
- (終了後)
- 50bitはlong longに収まるので数値でやればよかった
- 解きなおし
- https://github.com/firewood/topcoder/blob/master/srm_5xx/srm_555/CuttingBitString.cpp
Div1 Medium (500) XorBoard
問題
- 0か1の状態を持つH×Wのセルがある。
- 行または列の反転操作の回数と、1の個数Sが与えられる。
- 何通りの操作があるか求める。
方針
- ちょうどSにするのが謎
- (終了後)
- naoya_tさんとkojingharangさんのを読む
- なるほど
- 個数に影響するのは、ある場所を奇数回反転させたとき
- 1回反転+偶数回反転に分離して考える
- 1の個数は、行r回と列c回だとすると、s=r×W+c×H-2×r×c
- s=Sかつ、残りの反転回数が偶数になる場合をループで調べる
- 行で考えると、r個の場合の数と、残りの偶数回の分配の場合の数の積
- 行の場合の数と列の場合の数の積
- 1回反転については、r個をH箇所に配る場合の数=combination(H, r)
- 偶数回の反転については、(Rcount-r)÷2=rrとして、rr個をH箇所に配る重複組み合わせ=homogeneous_product(H, rr)=combination(rr+H-1, H-1)
- combinationで計算できるが、(1555+1555÷2)≒2333の大きさが必要
- https://github.com/firewood/topcoder/blob/master/srm_5xx/srm_555/XorBoard.cpp
結果
o-- 107.65pt 549th 1421 -> 1378 (-43)
点数悪いけど、解ける問題のときにプラス点なのはよい。
今回は裏onsiteということで喫茶店に集まって解いた。なかなか盛り上がってよいですね。
coding phaseが終わって他の人を見たら微動だにしてなかった。集中力のなさに反省。
mediumはさぼっていたけど、解けないと話題についていけないので、参加した回のは順次やっていくことにしたい。
コメントを書く
トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120909
リンク元
- 36 https://topcoder-g-hatena-ne-jp.jag-icpc.org/
- 1 https://topcoder-g-hatena-ne-jp.jag-icpc.org/diarylist
- 1 http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=6&ved=0CFEQFjAF&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20111129/1322588111&ei=SWlNULyLK-nGiwLdy4CICg&usg=AFQjCNH98XBuKr0lgVIwdP1_8-lxojyaDQ&sig2=5N_45VfTTPeqHU7_Mn8lqA
- 1 http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&cad=rja&ved=0CFAQFjAG&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20111207/1323272747&ei=3W5NUM-JFcO3igLl4IDgDw&usg=AFQjCNEpXGYQr6MHMvMBe3TWoFwr9q3PMg&sig2=dPDcxf2shyLXyinaqtOSpQ
- 1 http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=0CEMQFjAE&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120709/1341850006&ei=3QBOUJ62FcfRmAWl0oDYAQ&usg=AFQjCNFTI_vpwjDY1mY8ARBm-AxRGdIf5Q&sig2=3Xbn3zdsgvFc37w57teP-w
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=8&ved=0CFoQFjAH&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120909/1347186258&ei=hxNOUN_zAs71mAWLtYD4BQ&usg=AFQjCNEAmAhXe6ZDovYQmGQq8SJjUmL3Rw&sig2=ZQhtyS4luAdRNPnkVe3nzA
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CDAQFjAC&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120903/1346625368&ei=4MJOULmXKKP2mAXi1oGYDA&usg=AFQjCNH4c7HsvsOtdtC6queBcNKXzcYRGQ
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=srm 505 perfect&source=web&cd=2&ved=0CCkQFjAB&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20110510/1305044277&ei=tgNPULL4NeLomAWc4oGQCQ&usg=AFQjCNFjHGTe9yN6BkgVP5dN9fmATbQ7KQ
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=1&sqi=2&ved=0CCIQFjAA&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120903/1346625368&ei=qlpPUJuMHMrtmAXhqoH4AQ&usg=AFQjCNH4c7HsvsOtdtC6queBcNKXzcYRGQ&sig2=KaCR0ghC_KxLFqOQv8qQ_g
- 1 http://www.google.com.tw/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=0CEoQFjAE&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120823/1345745155&ei=pvRPUMOZHcnzmAXM3YHYBA&usg=AFQjCNEht9O5AicHC1RvaHehvz809yLgbA&sig2=7k1HkJJypsy4vwW3bmU36w