プロコン現在FとH以外は解いたけど、1つの記事にするとえげつない長さになるので2〜3回に分割します。比較的簡単で、自分もコンテスト中(夕飯食べたり風呂入ったりで参加したのは実質1時間)でDまでは解きました。Trains)問題概要5:00から23:00までの間に電車がN本等間隔で走ったそうです。最初の1本が5:00丁度、最後の1本が23:00丁度に通った時、何分間隔で電車が通ったか求めよ。AtCoder解法5:00〜23:00は18時間=18×60分。その間にN本走ったので、18×60/(N-1)を出力するだけです。長方形の座標の格子点上にイチゴがいくつかあります。(0,0)と座標の端の格子点のを結ぶ直線で長方形を分割し、イチゴを等分してください。AtCoder解法H,W,N≦10と数がかなり小さいので普通に全探索。(0,0)以外の交点を2重ループで回しながら(最初にその格子点が端か判定)、各イチゴが直線のどちら側にあるか判定するのですが、自分は座標を用いました。(0,0)、(a,b)を通る直線はay=bxです。イチゴの座標を(i,j)とした時、イチゴが直線より上にあるならay>bxイチゴが直線上にあるならay=bxイチゴが直線より下にあるならay<bx2.は問題文より該当するイチゴがあった時点で不適。1と3のイチゴの数が一致すればその格子点は条件を満たします。//(i,j)でカット。各街にお金がおいてあり、それを回収しながら散歩する。始点は自由で同じ街を通らずに散歩するとき、最大いくらお金を集められるか。散策可能な通り数が200万通り以下なので全探索して1億回。座標上で(1,1)から(W,H)まで格子点を最短距離で進むが、(i,j)(i+1,j)(i+1,j+1)(i,j+1)のいづれかを通らなければならない。この条件を満たす移動方法は何通りあるか。最短距離で進む=戻れない、です。ここで、上に挙げた頂点が通れなくなるのは(i-1,j+2)含む左上、もしくは(i+2,j-1)を含む右下を通ってしまった時です。これらを通ってはいけないので予め-1とでも値を初期化しておけばあとは見慣れたDPでOKです。//(x+2,y-1)より右下と(x-1,y+2)より左上を0に。0;}続きは週末にでも。日)ネットの海に生息するらしいバーチャルグソクムシ。競プロとCTFをメインに、たまにEsolangを混ぜます。(7)月別アーカイブリンクGitHubはてなブログをはじめよう!Hyogaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。