Hatena::Grouptopcoder

hotpepsiの練習帳

2014-02-01

SRM 594

| 01:38

Div2 Easy (250) FoxAndClassroom

問題

  • 座席がN×Mある
  • ひとつずつうしろと右にずれていったとき、全ての座席に座れるかどうかを答える

方針

Div2 Medium (500) AstronomicalRecordsEasy

問題

  • 惑星系に関する記録がAとBの二つある
  • 各要素は太陽からの相対距離である
  • AとBは同じ惑星系の記録だが、倍率は異なる可能性がある
  • 全ての惑星が記録されているとは限らない
  • 少なくともいくつの惑星があるか求める

方針

Div1 Easy (250) AstronomicalRecords

問題

  • 惑星系に関する記録がAとBの二つある
  • 各要素は太陽からの距離順に並んでおり、数値が相対的な大きさを表す
  • AとBは同じ惑星系の記録だが、倍率は異なる可能性がある
  • 全ての惑星が記録されているとは限らない
  • 少なくともいくつの惑星があるか求める

方針

結果

oo- +1-1 244.72+371.76+50-25=641.48pt 28/995th rating 1141 -> 1227 (+86)

vector<int> x(N)でx[N]に代入しているコードがあったので、N=8でchallengeしたが失敗。system testではN=6で落とされていた。

glibcmalloc(dlmalloc?)の最小割り当てサイズは24バイトで、4(int)×6(要素)のときにぴったりのサイズになり、隣接する管理領域のnextを破壊して死ぬということのようだった。N=10でも別のエラーで死んだ。

div1medは、A[i]とB[j]が同じであると仮定すると、A[i]より前とB[j]より前のLCSと、A[i]より後とB[j]よりあとのLCSに分離できて、ちょっと速くできる。

トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20140201