2011-01-01から1ヶ月間の記事一覧

Codeforces Beta Round #51 A

問題 ノミがn個の円状になっている草むらを時計回りで飛んでいる。このノミは時刻kのときには、現在位置からk-1個先の草むらへ飛ぶ。このとき、ノミはn個すべての草むらにまわることができるか。 考え方 nが少ないので、適当にシミュレーションするだけ。 な…

SRM385 Div2 1000

問題 要素数kの魔法の数列とは、正の整数x,dについて x, x+d, x+2*d, x+3*d, ... , x+(k-1)*d であるような等差数列である。 leftからrightまでの範囲の中で、k個の魔法の数列の合計として表現できる数字はいくつ存在するか。 [制約] 1 k=2,3,4,5 考え方 1以…

SRM385 Div2 500

問題 ワープロで、その行にある文字列をなるべく等間隔で並べる処理をする。 その行の幅widthとその行にある文字列wordsが与えられる。 文字列の間にはgapと呼ばれるいくつかのスペースが与えられる。その行のすべてのgapは最大のスペース数と最小のスペース…

SRM385 Div2 250

問題 標識に速度制限が書いてある。 整数Xの場合、その速度以下にしなければならない。 "default"の場合、市内ならば60、市外なら90以下。 "city"の場合、市の境界を表し、市内→市外と市外→市内に移り変わる。 最初市内から出発し、これまでに見た標識のリス…

SRM386 Div2 500

問題 データベースのtableが与えられる。 superkeyとは、すべてのエントリがそれで一意に決められるような、tableの属性の集合を指す。 candidate superkeyとは、その部分集合が他のsuperkeyを形成しないようなsuperkeyを指す。 tableの中で、candidate supe…

SRM386 Div2 250

問題 いろんな高さのトロフィーが並んでおいてある。真横から見たとき、高いものの後ろのトロフィーは見えない。左右それぞれから見たとき、いくつのトロフィーを見ることができるか。 考え方 次の方法で左右から計算する。 それまでの最大の高さと比較して…

SRM387 Div2 600

問題 いくつかの箱にさまざまな種類の色のビーダマが適当に入っている。 それを以下の条件を満たすように入れなおす。 1つの箱だけは「ジョーカーボックス」として、違う色のビーダマが存在してよい その他の箱は、ただ1種類の色のビーダマだけが入っていな…

SRM387 Div2 250

問題 初項pで公差qの等差数列か公比qの等比数列であるような数列Aが与えられる。 Aの最後の要素の次の要素を返す。 考え方 等差なのか等比なのかがわかればすぐに計算できるので、その判定をする。 数列Aは要素が3以上なので、 p, (p+q), (p+2q),... または …

SRM495 Div2

悔しいけど、コレが自分の実力。。

SRM494 Div2

AM2:00スタート。眠い。 250 InterestingParty 解けた。 やるだけぽい。 mapにカウントしながら最大カウントを計算するだけ。 500 Painting 解けた。 縦横方向それぞれの最小値でいいかな。。。 そんなわけはなかった。キラーケース{"BBWW","BBBW","WWBB","W…

ハル研プロコン2010

今年も参加。参加はしたが。。。

SRM388 Div2 1000

問題 k-smoothな正の整数とは、その最大の素因数がkを超えないような整数をいう。 N以下の正の整数のうちでk-smoothな整数の個数を返す。 考え方 やるだけ。 ■素数の組み合わせで求める方法 1000以下の素数について、各素数同士の組み合わせでできるN以下の…

SRM388 Div2 500

問題 選挙で、各立候補者の投票数が与えられる。 自分が推薦する人を当選させる為に必要な買収する有権者数を返す。 考え方 やるだけ。 推薦する人以外の立候補者の中で最大の数のところから1人買収することを繰り返す。

SRM388 Div2 250

問題 strictly increasing seqenceとは、各数字が1つ前の数字よりも大きいような数列で、strictly decreasing sequenceとは、1つ前の数字よりも小さいような数列である。strictly monotone sequenceとは、上記のどちらかである数列をいう。 ある数列が与えら…

SRM389 Div2 1000

問題 注目するギターの開放弦の音と鳴らしたいコードが与えられる。 注目しているすべての弦を鳴らして、鳴らしたいコードを鳴らすためにはフレットを指で押さえなければならない。「コードの押しにくさ」を押さえる最大フレット番号-最小フレット番号+1と定…

SRM389 Div2 500

問題 整数の割り算はコンピュータの計算コストが高い。なので、計算コストの低い演算を多く用いて計算した方がよい。ここでは、以下の式により割り算の答えの近似値を計算する。 で、tは2の累乗とすると分母は計算コストの低いシフト演算で実装できる。 整数…

SRM389 Div2 250

問題 本が積み重ねておいてあり、それを箱に詰めていく。 上から順に入れていき、その重さが箱に入れられるだけいれて、テープで止めて次の箱に入れていく。箱は最大重量があり、それを超えないようにいれなければいけない。 各本の重さと最大重量が与えられ…

SRM390 Div2 500

問題 正の整数numberが与えられる。そのnumberのコピーをいくつかくっつけてできる数字の中で、kで割り切れるものを探す。そのような数字で一番小さい数字のコピー回数を返す。無理なら-1を返す。 考え方 kで割り切れるということで、余りに注目する。 numbe…

SRM390 Div2 250

問題 左手の指をおって数を数える。 親指、人差し指、中指、薬指、小指、薬指、、、とカウントする。その中で、ある指は最大でmaxCount回しかおることができない指がある。順番に数をカウントしていったとき、いくつまで数えることができるか。 考え方 やる…

SRM391 Div2 500

問題 2つの文字列が同型であるというのは、1つ目の文字列の文字を2つ目の文字列の文字へリマッピングすることができることをいう。リマッピングとは、ある文字列のすべての文字を別な文字へ置き換えることで、文字の並びは変わらない。そして、2つの文字が同…

SRM391 Div2 250

問題 高速道路が雪で通行止めになった。雪がある場所のスタート地点とゴール地点がいくつか与えられるので、雪がある区間の合計を求める。入力にはオーバーラップがあることに気をつける。 考え方 bool配列を作って、実際に入力される区間を塗りつぶして最後…

SRM392 Div2 500

問題 2つの文字列s1,s2が与えられる。各文字列はいくつかのアルファベットと1つの"*"を含む。 このアスタリスクを何らかの(長さ0以上の)文字列に置き換え、s1とs2を等しくしたい。 そのような文字列を作れた場合、最小の長さの文字列を返す。不可能な場合は"…

SRM392 Div2 250

問題 2007年の各月の最後の日にだけキャンディーを食べられる。 キャンディーの寿命は1月1日から食べられた日までの日数で与えられる。各月の最後の日に食べられたキャンディーの数が与えられるので、キャンディーの平均寿命を計算する。 考え方 重み付き平…

SRM393 Div2 500

問題 10人未満の立候補者の選挙を行う.各有権者の好きな立候補の順序を表す文字列が与えられ,選挙は,以下の方法で行われる. 各ラウンドで,各有権者は一番好きな立候補者1人に投票する.もし,有権者の50%よりも票を集められたら,その選挙の当選者とな…

SRM393 Div2 250

問題 目的地までの距離journeyLengthと単位時間当たりの制限速度speedLimit配列が与えられる.1単位時間あたりspeedLimit[i]の速度で移動した場合,目的地まで何単位時間かかるか. 考え方 1単位時間あたりの速度がspeedLimit[i]なので,1単位時間でspeedLim…

CF Beta Round 51

A. Flea travel 解けた。 modの世界。10^6回ぐらい回してみればいいかな。提出。 いやいやいやいや、不安すぎる。10^8回ぐらい回した結果と違う結果になるものを探してみる。おわらない。YESになるやつだけ出力してみる。1,2,4,8,16,...なるほど。再提出。 B…

SRM394 Div2 1000

問題 0より大きい整数kは、mより小さく、mを割り切れるが、k^nではmを割り切れないとき、「mのcool divisor」という。d(m)は、整数mでのcool divisorの数とする。整数a,bについて、d(a)+d(a+1)+...+d(a+b)の値を返す。1 1 2 考え方 総和について、視点を変え…

SRM394 Div2 500

問題 文字列sが与えられる。sの一番多く使われている文字をc1、0回以上使われている中で一番使われていない文字をc2とすると、sのroughnessは、(c1の文字数)-(c2の文字数)で与えられる。 0文字以上n文字以下の文字をsから消すことができる場合、最小の可能な…

SRM394 Div2 250

問題 2次元配列areaMapが与えられて、各セルの数字はその地点の高さを表す。(0,0)からスタートし、(i,j)にいたら、(i+1,j),(i,j-1),(i-1,j),(i,j+1)の順にいけるかどうかをチェックし、最初にいける場所へ移動する。いけるかどうかは、まだ行った事のないセ…

SRM493 Div2

頭の頭痛が痛い。