Hatena::Grouptopcoder

hotpepsiの練習帳

2015-01-17

SRM 643

21:32

Div1 Easy (250) TheKingsFactorization

問題

  • 数Nを素因数分解したい
  • 奇数番目の素因数が与えられる
  • 全ての素因数を昇順に求める

方針

結果

o-- 129.17pts 252nd/538 rating 1382 -> 1426 (+44)

年末のレートは1093 -> 1327 -> 1301 -> 1426

微妙に成長している。


http://togetter.com/li/762832

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

2015-01-13

SRM 642

02:25

Div1 Easy (250) WaitingForBus

問題

  • N台のバスがある
  • ランダムでどれかのバスが出発する
  • 戻ってきたら次のバスがランダムで選ばれる
  • バスが選ばれる確率と、戻ってくるまでの時間の配列が与えられる
  • 時刻sでの平均待ち時間を求める

方針

結果

o-- 192.21pts 133rd/367 rating 1298 -> 1382 (+84)

誤差恐怖症なのでlong doubleにした。

もしバスのスケジュールがこんなだったらタクシーに乗る。


http://togetter.com/li/758671

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

2015-01-11

SRM 641

21:07

Div1 Easy (250) TrianglesContainOrigin

問題

  • 点の集合が与えられる
  • 一直線上に3点が並ぶことはない
  • 原点を内側に含む三角形が何個できるか求める

方針

  • 任意の2点A,Bを選び、そこを底辺として、原点の向こう側にある点の範囲を数える
  • 提出間に合わず
  • 反時計回りに列挙できるように、2π足した点も配列に足しておく
  • 角度がA<B、かつ、(B-A)<πの2点を底辺とする
  • A+πより大きくB+π未満の点を数える
  • 3辺のうち全ての2辺を列挙することになるので、最後に半分にする
  • https://github.com/firewood/topcoder/blob/master/srm_6xx/srm_641/TrianglesContainOrigin.cpp

結果

--- 0pts 232nd/519 rating 1312 -> 1298 (-14)

外積を使って解けるらしい。


http://togetter.com/li/756569

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

2015-01-08

SRM 640

02:29

Div1 Easy (250) ChristmasTreeDecoration

問題

  • クリスマスツリーのデコレーションをする
  • N個の星飾りがあり、それぞれの色が与えられる
  • 飾りと飾りはリボンで結ぶことができる
  • 結ぶことができる飾りの番号のリストが与えられる
  • できる限り異なる色で結びたい
  • 同じ色で結ぶことになる最小の個数を求める

方針

結果

o-- 132.62pts 337th/416 rating 1368 -> 1312 (-56)

div1勢は典型問題つよい。


http://togetter.com/li/755859

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

2015-01-06

SRM 639

01:12

Div1 Easy (250) AliceGame

問題

  • 2人でターン制のゲームをする
  • 各ターンの勝者はターン番号×2-1ポイントを得る
  • 2人の総ポイントxとyが与えられる
  • xポイントを取るための最小のターン数を求める

方針

Div1 Medium (500) BoardFolding

問題

  • 升目上に白か黒が書かれた紙がある
  • 模様が完全に重なるとき、端から折りたたむことができる
  • 折りたたみの状態数を求める(結果的に残った範囲が同じなら重複して数えない)

方針

  • 縦方向と横方向の折りたたみ方は独立しているので、最後に掛け算する
  • 縦方向の折りたたみについて考える
  • 1列単位で同じかどうかのテーブルを作る
  • ある列を右端として左にK列折りたためるかと、左端から右にK列折りたためるかのテーブルを作る。ある列Xについて、K=1から左右の両方が同じかどうかで1列ずつ広げていく
  • あとはDFS
  • https://github.com/firewood/topcoder/blob/master/srm_6xx/srm_639/BoardFolding.cpp

Div2 Easy (250) ElectronicPetEasy

問題

  • 二匹の電子ペットに餌をやる
  • 餌やりは時刻stから周期pでt回
  • 同時に2匹の餌やりが発生するかどうかを求める

方針

Div2 Medium (500) AliceGameEasy

問題

  • 2人でターン制のゲームをする
  • 各ターンの勝者はターン番号と同じポイントを得る
  • 2人の総ポイントxとyが与えられる
  • xポイントを取るための最小の勝利ターン数を求める

方針

結果

--- -1 -25pts 493rd/539 rating 1522 -> 1368 (-154)

足し算してループするときにTLEすると勘違いしてチャレンジ失敗した。


http://togetter.com/li/751044

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