TopCoder

TopCoder SRM 605 Div1 Easy AlienAndHamburgers

問題 n個のハンバーガーがあり、それぞれ種類がtype[i], 味がtaste[i]である。 この中からエイリアンに食べさせるハンバーガーを選ぶ。 エイリアンの満足度は、食べさせたハンバーガーのうち異なるtypeが何種類あるかをY 食べさせたハンバーガーの味の合計を…

TopCoder SRM 604 Div1 Hard FamilyCrest

問題 線分の(重複)集合からなる図形が(x1[i], y1[i]), (x2[i], y2[i])により与えられる。 この図形を平面上に回転させずに、ずらして、コピーする。 どの二つのコピーも重ならないように、平面内の有限の範囲に無限に敷き詰められるか否かを判定せよ。 制…

TopCoder SRM 604 Div1 Medium FoxConnection

問題 木が与えられる。 それぞれの頂点には最大1匹のきつねがいる。 きつねは、最終的に以下の条件を満たすように移動したい。 きつねがいる町が連結になっている 一つの町には最大一匹のきつねしかいない このとき、きつねの移動距離の総和の最小値を求め…

TopCoder SRM 604 Div1 Easy PowerOfThree

問題 ロボットが座標平面の原点にいる。 好きな歩数を動くことができて、i歩目の移動では上下左右のいずれかの方向に、3^iだけ移動する。 ただし途中の移動だけをスキップすることはできない。 ロボットが座標(x, y)で止まることができるかを判定せよ。 制約…

TopCoder SRM 603 Div1 Hard SumOfArrays

問題 長さn項の二つの数列a[i], b[i]が与えられる。 bの順序を好きに入れ替えて数列b'[i]を作る。 c[i] = a[i] + b'[i]という数列に、なるべく同じ数が出るようにbを並べ替える。 このとき、同じ数の出現回数の最大値と、その数を求めよ。 出現回数の最大値…

TopCoder SRM 603 Div1 Medium PairsOfStrings

問題 n文字でアルファベットの最初のk種類からなる文字列A, Bのうち、 次の条件を満たす(A, B)のペアの総数をmod 10^9 + 7で求めよ。 ある文字列Cが存在し、A + C = C + Bとなる。 (ただし + は文字列の結合を表す) AまたはBが一文字でも違うとき、二つの…

TopCoder SRM 603 Div1 Easy MaxMinTreeGame

問題 木が与えられる。各頂点には整数のコストが書かれている。 この木で二人が次のようなゲームをする。 二人は交互に手番を繰り返す。 手番のプレイヤーは辺を一つ選んで切断し、木を二つに分ける。一方の木を完全に消滅させる。 木が頂点一つになったら終…

TopCoder SRM 602 Div1 Medium PilingRectsDiv1

問題 長方形の紙が2*n枚あり、それぞれの一辺の長さはx[i], y[i]である。 (縦横を入れ替えてもよい) この紙をn枚ずつに自由にわける。 n枚について次のような得点を考える。 xy平面上に辺が軸に平行になるよう自由に置く。 全ての紙が重なっている領域の面…

TopCoder SRM 602 Div1 Easy TypoCoderDiv1

問題 Typocoderにn回参加する。 初期のレーティングはXで、i回目のコンテストで本気を出すとD[i]レーティングが上がり、 本気を出さないとD[i]レーティングが下がる。 ただし、レーティングが0未満になったときは、0になるとする。 レーティングが2200以上の…

TopCode SRM 601 Div1 Medium WinterAndSnowmen

問題 {1, 2, ..., N}の部分集合Aを選ぶ {1, 2, ..., M}の部分集合Bを選ぶ。このとき、AとBの積集合が空かつ、(Aの要素全てのxor)<(Bの要素全てのxor)となる集合の選び方は何通りあるか。 mod 10^9 + 7で求めよ。 制約条件 N, M≦2000

TopCoder SRM 601 Div1 Easy WinterAndPresents

問題 n個のかばんがあって、i番目のかばんにはりんごがapple[i]個とみかんがorange[i]個入っている。 ここから次のようにしてりんごとみかんを取り出す。取り出し方は何通りあるか。 自然数Xを選ぶ。 それぞれのかばんから、りんごとみかんの合計がX個になる…

TopCoder SRM 600 Div1 Easy ORSolitaire

問題 n個の数字が与えられる。 そこから数字をいくつか削除して、残った数字から どのように数字を選んでそれら全てのbitwise orをとってもgoalの数字にできないようにしたい。最小でいくつの数字を削除しなければならないか求めよ。 制約条件 数字≦10億 n≦50

TopCoder SRM 600 Div1 Medium PalindromeMatrix

問題 各成分が0または1の行列Aが与えられる。 Aの行のうちrowCount個以上の行が回文であり、 Aの列のうちcolumnCount個以上の列が回文になるように、 Aの成分をいくつか書き換える。書き換えなければならない最小の個数はいくつか、求めよ。 制約条件 Aの行…

TopCoder SRM 594 Div1 Medium FoxAndGo3

問題 nxnのグリッドに白石'o'と黒石'x'が置かれている。 何も置かれていない場所は'.' 辺を共有する白石はひとかたまりとみなす。 ひとかたまりの白石が、何も置かれていない場所に隣接していない状態になると、 その白石は全て'.'に変わる。黒石を好きなだ…

TopCoder SRM 593 Div1 Medium MayTheBestPetWin

問題 動物がn匹いて、2チームに振り分けてリレーをする。 それぞれの動物は、自分の区間をA[i]秒以上B[i]秒以下のどれかの時間で走る。 二つのチームの走行時間の差の最大値が最小になるようなチーム分けにおける、 走行時間の差の最大値を求めよ。 制約条件…

TopCoder SRM 593 Div1 Easy HexagonalBoard

問題 Hex格子上の図形が与えられる。 隣り合う格子を必ず違う色で塗るとき、図形のすべての格子に色をつけるためには何色必要か求めよ。 制約条件 図形は50x50に収まる

TopCoder SRM 589 Div1 Hard FlippingBitsDiv1

問題 長さnの01からなる文字列が与えられる。 この文字列に大して以下の操作を行うことができる。 任意の1文字の0,1を反転する 先頭からk*m文字の0,1を反転する(ただしkは任意の自然数) 操作を終えたあと、文字列の先頭からn-m文字の部分文字列と、末尾か…

TopCoder SRM 589 Div1 Medium GearsDiv1

問題 R, G, Bのどれかの色をした歯車がn個ある。 同じ色をした歯車は、すべて同じ向きに回転している。 歯車のうち、いくつかは噛み合っていて、噛み合っている歯車は必ず反対向きの回転をしている。 同じ色をした歯車同士が噛み合っていることはない。 この…

TopCoder SRM 589 Div1 Easy GooseTattarrattatDiv1

問題 英小文字からなる文字列が与えられる。 文字列に対して、文字x, yを選び、文字列に現れるすべてのxをyに置換することができる。 このときにかかるコストはxが現れている回数である。 この操作を繰り返し行い、文字列を回文になるようにしたい。 かかる…

TopCoder SRM 425 Div1 Hard RoadsOfKingdom

問題 n頂点からなる無向完全グラフで表される都市と道がある。 ここに雨がふって、それぞれの道がroads[i][j] / 8の確率で残り、 それ以外の確率で破壊される。 残った道が、木になっている確率を求めよ。 制約条件 n≦16

TopCoder SRM 437 Div1 Hard TheSum

問題 正の整数a, b, cが与えられる。 a + b = cが成り立つように、それぞれの数字を 数字を一つ削除するごとにコストdelCost 数字を一つ挿入するごとにコストinsCost 数字を一つ置換するごとにコストrepCostで、 何回でも削除、挿入、置換ができる。 ただし…

TopCoder SRM 588 Div1 Medium KeyDungeonDiv1

問題 n個のドアがある。 i番目のドアを開けるのに、赤の鍵がdoorR[i]個、緑の鍵がdoorG[i]個必要である。 i番目のドアを開けると、(最初の一回だけ) 赤の鍵がroomR[i]個、緑の鍵がroomG[i]個、白の鍵がroomW[i]個得られる。 一度使った鍵は壊れるのですぐ…

TopCoder SRM 588 Div1 Easy GUMIAndSongsDiv1

問題 n個の歌があり、それぞれの歌の長さはduration[i], トーンがtone[i]である。 Tの時間のうちに異なる歌をできるだけ多く歌いたい。 トーンがaである歌の直後にトーンがbの歌を歌おうとすると、|a - b|の時間の休憩が必要である。 最大でいくつの歌を歌え…

TopCoder SRM 581 Div1 Easy SurveillanceSystem

問題 n個の部屋が一直線上に並んでいる。 i個目の部屋にコンテナが置いてあるかどうかが与えられる。 部屋をいくつかの監視カメラが監視している。 全ての監視カメラは、長さLの連続する部屋を監視している。 それぞれの監視カメラが監視する部屋に重複があ…

TopCoder SRM 581 Div1 Medium TreeUnion

問題 それぞれn頂点からなる木A, Bが与えられる。 この二つの木を次のようにしてつなぐ。 0, 1, ..., n - 1の順列をP[i]とする。 A[i]とB[P[i]]の間に辺を張る。 出来たグラフに大きさKの単純閉路(同じ点を二度通らない閉路)はいくつできるか。 全ての順列…

TopCoder SRM 580 Div1 Medium ShoutterDiv1

問題 うさぎがn匹いて、それぞれs[i]からt[i]の間部屋にいた。 部屋にいた時間の区間が長さ0以上の共通部分をもつうさぎは友達になった。 うさぎが全員twitter的なサービスで自己紹介を、他の全てのうさぎに見せたい。 友達の自己紹介は直接見られるが、友達…

TopCoder SRM 570 Div1 Hard CurvyonRails

問題 hxwの土地があって、それぞれのマスはfield[i][j]で表される。 filed[i][j]が'w'のところは荒野で、 'C'のところはCurviesがいるところ、 '.'のところは何もないところである。 'w'以外の全てのマスに、線路を引く。 線路はマスの4辺のうち、2つを接…

TopCoder SRM 575 Div1 Hard TheTilesDivOne

問題 h x wのチェス盤がある。 座標(i, j)が、(i + j) % 2 = 0 を満たすマスは黒で、そうでないマスは白である。 いくつかのマスには障害物が置かれている。 チェス盤に、ちょうど3マス分のサイズのL字のブロックを置く。 ブロックは、角の部分が黒いマスに…

TopCoder SRM 574 Div1 Meidum PolygonTraversal

問題 正n多角形がある。 この多角形の頂点を折れ線で結んでいく。いま、pointsで示される頂点を結んで、pointsの最後の頂点にいる。 残りまだ訪問してない頂点を、次の条件を満たすように結ぶ。 次の頂点への線分を描くとき、今までの折れ線に交差する。 最…

TopCoder SRM 573 Div1 Medium SkiResorts

問題 n個の場所が、向きのないゲレンデによってつながっている。 つながっている箇所はroad[i][j], road[j][i]がYになっている。 それぞれの場所には高さがあり、i番目の高さ≧j番目の高さのとき、 iからjに移動することができる。 今、0番目の場所からn-1番…