olpheの競プロ帖

競プロ問やアルゴリズム等の考察します

DDCC2017参加記

前泊ダメだよとのことだったので朝5時ぐらいにお家を出て新幹線で東京に向かうことに。ほぼ始発だったのでめちゃくちゃ混んでて怖いね。 品川でりかちゃんとうしさんと合流して大森海岸へ、 4号車マンやが — olphe (@_olphe) 2017年11月2日 僕も4号車です — …

Marathon Match 95

画像が与えられるので、指定された数の半透明な円を描いていって元の画像に近づけようという問題。 作成途中の画像の状態だけが重要で配置の順番はどうでもいいと思ったのでビームサーチ案を捨て、貪欲に円を配置していくことを考えた。 貪欲パートは、ラン…

Codeforces Round #435 (Div. 2)

ABDの3完で239位 A問題 数字の数と作りたいMEX,N個の数が与えられる。数字を出現させたり消したりしてMEXを指定の数にしたい。 配列を用意して舐めてあげればよいです。 http://codeforces.com/contest/862/submission/30502250 B問題 木が与えられる。二部…

  Codeforces Round #434 (Div. 1, based on Technocup 2018 Elimination Round 1)

3完99位 Unratedめ… A問題 文字列が与えられる。その中に2種類以上の子音が3個並んでいたら切る問題。 切る回数を最小にしたい。 前から貪欲に調べていって条件を満たし次第切ればよい。 貪欲なのでO(N) http://codeforces.com/contest/860/submission/30422…

Codeforces(MemSQL Start[c]UP 3.0 - Round 1)

5完122位でした!すごい!Round2も頑張るぞ! A問題 本選に25人参加できるコンテストがあり、それらの参加者のうち何人かの予選での順位が与えられる。本選参加を辞退した人は最小で何人かな? http://codeforces.com/contest/859/submission/30389464 B問題…

TCO17 Pittsburgh Event / Fun SRM

EasyとMedが通って33位 1573->1565(悲しいね) Easy 文字列sとtが与えられるので{0,o},{1,l},{m,n}の入れ替えだけでs->tにできるか判定する。 Med 数列が与えられるので、任意の3数の和が9の倍数にならない最大の組み合わせを求める。bitDPをしたがうしさんに…

CSAcademy#47

4完104位、悲しいね A 舐めて求める数を数えます B 何個数字使うかを全探索してうまくいくときに出力する。 C v[i]はnum[i][0]~num[i][W-1]のLCM、u[i]はnum[0][i]~num[H-1][i]のLCM 条件を満たしていたら出力 D 数がNの時は、N/2と(N+1)/2の結果から導き出…

CodeForces433(div1)

A 現在の時刻よりも早く出発すべきだった便のうち遅延コストのでかいものから飛ばしていく。自明。 1958->1910 こどふぉ、レート上げるの難しすぎるなあ

Poland Lighting Round(TC MM)

マスがあってチェスのナイトを置く。 あるマスを攻撃できるナイトの数がマスに書かれた数字に近づくようにしたい。 舐めつつ焼きなました。 https://github.com/olphe/MM/blob/master/MM_KnightsAttacks~Randomized.cpp なんかシステスと競技中のジャッジの…

MarathonMatch94

MM94お疲れさまでした。 まず全体的な方針として左上から詰めていく(順列を表すvector(以下ansとする)に前から順番に要素を追加していく)ことにした。 理由としては以下の2点 ①どこに一番得点が高い組み合わせを置いても同じだと思ったから。 ②左上にそろえ…

セグメントツリー

https://github.com/olphe/temp/blob/master/segment_tree.cpp 宣言時に要素数と、min,maxのどっちを求めるかを決める。 v:各要素 l:各要素がもつ範囲の一番左 r:各要素がもつ範囲の一番右 is_min:最小値を求めるか否かの判別をする。 Update,TopDown:一気に…

IOI列車で行こう(13本選2)

N両の電車とM量の電車が与えられる。それぞれはI列車とO列車のみで構成される。 順にどちらかの先頭の車両を取っていき、IOIOIOIOIのようにIとOか交互に並び、且つIが端にあるように並べたとき、最長の長さを求める問題。 なお、電車はあまらせてもよいし、…

JOI国の買い物事情(11本選3)

N個の町、M本の道、K個のショッピングモールがある。 ショッピングモールは町の中にある。 町及び道の中で一番近いショッピングモールまでの距離が最大の値を求める問題。 まず、dijkstraで町までの距離を求め、各辺について辺上で一番遠い点を求める。 計算…

ペンキの色(08本選5)

H*Wの看板にN個のテープが貼ってある。色を塗らなければならないスペースが何個あるかを求める問題。 座標圧縮をして、queueで何個あるか探す。 計算量は(N^3)だが定数が小さい。 難易度は7程度に感じられた。 http://judge.u-aizu.ac.jp/onlinejudge/revie…

ぴょんぴょん川渡り(08本選4)

N行に石があり、それぞれの行にある石の数と、位置と滑りやすさが決まっている。 向こう岸まで跳んで行った時の最小の危険度を求める問題。 なお、一行飛びジャンプはM回までできる。 dp[i行目までで][j回までの一行飛びジャンプを使い][i行目のk個目の石]に…

最軽量のモビール(07本選5)

N個の棒があり、そのそれぞれにひもがつながっている。一番上の棒をつるしているひもを除いては、ひもの下には棒かおもりがある。 角棒について、自分をつるしているひもより左の長さ、右の長さ、左につるしている棒の番号、右につるしている棒の番号(おもり…

タクシー(14予選5)

N個の町、K本の道がある。各町にはタクシー会社が存在し、それぞれ決められた数までの道を移動できる。また、料金も決まっている。 1~Nに移動するために必要なコストの最小値を求める問題。 基本的にはdijkstraでよいが、各頂点を訪れるごとに移動できる場…

魚の生息範囲(13予選5)

N種類の魚がいて、それぞれの生息範囲が直方体で与えられる。 同時にK種類の魚が存在しうる領域の体積を求めよという問題。 まず、座標の範囲が0~1000000と非常に大きいにもかかわらず、魚の種類は最大でも50なので無駄っぽい。なのでそれぞれについてソート…

ビンゴ(09予選6)

N*Nのビンゴに1~Mまでの数字を入れる。和をSにしないといけないという条件の下で、何通りのカードが作れるかな?という問題。 dp[i個の数字で][jを作る]通り数のDPを組む。大きいものから見ることで1次減らせる。 計算量はO(NMS) 難易度は7程度に感じられた。…

最悪の記者(07本選4)

Nチームがリーグ戦を行った。M個の勝敗の情報が与えられたとき、順位表のうちの一つを出力せよ。という問題。 なお、引き分けの試合はなく、同順位のチームもなく、順位が上のチームが下のチームに負けなかったことが保証されている。 勝ったチームから負け…

夜店(12本選3)

N個の屋台をT時間の間に遊びたい。また、時刻Sの時に花火もみたい。 一つの屋台で遊ぶ時の楽しさと時間が与えられるので、楽しさを最大化しようという問題。なお、屋台は番号の若い順にしか回れず、一つの屋台では一度しか遊べない。 N個目までの屋台につい…

スタンプラリー2(16本選2)

N個の店があり、それぞれJかOかIが決まっている。3店を選んでJOIを作る。 なお、3店は番号の小さい順に選ぶ必要がある。 ここで、任意の場所に任意の文字の店を一つ追加して、JOIを作る通り数を最大化したいという問題。 まず、最初の段階でJOIの通り数を数…

オレンジの出荷(16本選1)

N個のオレンジがあり、それぞれ大きさが決まっている。一個の箱には最大でM個オレンジを詰められ、箱に詰める際のコストはK+num*(MAX-MIN)で求められる。 (numは箱に詰めたオレンジの数。MAX,MINは箱に詰めたオレンジの大きさの最大値、最小値) コストを最小…

ケーキの切り分け2(15本選2)

N個に切られたホールケーキがあり、それぞれの大きさが与えられる。 先攻はまず好きなピースを取り、それ以降後攻は空間が隣にあるケーキの内で大きいほうのケーキを、先攻はそのようなケーキの内好きなほうを取る。 先攻の大きさを最大化しようという問題。…

IOI饅頭(14本選2)

N個の饅頭があり、それぞれ価格が決まっている。 M個の箱があり、それぞれ何個饅頭を入れられるか、購入の際のコストが決まっている。 利益を最大化しようという問題。 まず、饅頭をi個売る時は、高いもの時からi個売るのがいいので、ソートして累積和を求め…

電飾(14本選1)

N個の電球が並んでいて、それらは点いているか消えている。 一回だけ、連続する電球の点灯状態を反転させて、交互に並べたい。 最大で何個できるかな?という問題。 まず、連続して同じ状態の電球が並んでいるところをリストアップしておき、それらの中で隣…

JOI紋章(13本選1)

H*Wの旗があって各マスにJかOかIの文字が書かれている。 2*2の欲しい文字の並びと、白い布(最大で最大で一度一つの文字を上書きできる)が与えられるので、最大何回理想の並びが登場するかな?という問題。 まず、最初の段階で何個理想の並びが存在するか調べ…

古本屋(11本選2)

N冊の本の中からK冊本を売る。 各本には値段とジャンルが決まっていて、同じジャンルの本を多く売るとボーナスが入るので、利益の最大値を求めようという問題。 まず、任意のジャンルに関して、高いものから売ればより高くなることはすぐにわかるのでソート…

つらら(10本選3)

N本のつららがあり、左右に自分より長いつららがなければ伸びていく。 長さがLを越えると折れてしまうので、全部折れるまでにどれだけかかるかな?という問題。 毎秒シミュレートしては間に合わないので他の方法を取る必要がある。 まず、最初の段階で伸びる…

ピザ(09本選2)

円上にN個のピザ屋とM個の家があり、各家からの最も近いピザ屋までの距離の総和を求める問題。 愚直にやるとO(NM)で想定解法ではなさそうなので(10^9なので今は通るかもしれない) 二分探索をして各家がどのピザ屋とどのピザ屋の間にあるか調べる。 二分探索…