月別アーカイブ: 2017年6月

abc065

問A ◯ 10:43

問B ◯ 26:51

問C ◯ 42:15

問D ☓

128th / 597

R372 -> R570

問A Expired?

賞味期限からB-A日後に食べたことになるので

B-Aが0以下なら賞味期限前に

正なら賞味期限後になり

B-AがXを超えるとdengerousになる

ということをノートに書かないとわからないレベルで理解が難しかった

A問題としては難しめ

5分遅れで参加したこともあり

10:43に提出

 

問B Trained?

各ボタンを押したかどうかのフラグを用意する

無限ループを回し

押したことのあるボタンにたどり着いた場合無限ループするため

そこでbreakするというのを基本方針として

ボタン2に触れてもbreakするという条件を追加し

ボタン2に触れて終了した場合は回数を表示し

無限ループに到達して終了した場合は-1を出す

ボタンのインデックスと配列のインデックスが1ずれるというミスと

ボタン2に触れた場合終了するという条件を追加し忘れて時間を食ってしまい時間がかかるが提出

26:51に提出

 

問C Reconciled?

犬と猿がほぼ同数でないと隣り合わない順列を作れないということに気づくのが味噌か

厳密には前後1匹以内でないと隣り合わない順列を作れない

同数の場合は片方の順列の数がn!あり

n-1個の間にM!の順列を並べ、最後の1匹を左右どちらかに入れるので

2*N!*M!が答え

1匹違いの場合は同数の場合の最後1匹の場合がないので

N!*M!でよい

 

10^9+7で割る場合の演算方法を調べながら実装を行ったが

足し算と掛け算はその都度割ればいいっぽい

 

問D  Built?

全ての街の組についてのコストを計算して

最小全域木を作ればいいっぽいが

題意を全ての街の組について最小の移動コストを求める問題と勘違いし

ワーシャルフロイド法を使ってしまった・・・

 

実装が遅いこともあり題意の勘違いに気づいたときには

残り10分程度でダメ元で作ってはいたが

もう10分は必要という感じだった

 

 

この手の基本的なアルゴリズムは一度再実装したほうが良さそうだ

学部、大学院で勉強したので概要は知っているが

実装となると話は別で

ワーシャルフロイド法もググって入出力を問題に合わせる感じという

無残な感じのものなので

何度も挫折した蟻本にもう一度挑戦しようかな・・・

今なら理解できる気もするし

 

とりあえず茶色コーダーになったが

ARCの結果を見る感じだとR1200を超えてもD問題を解けていない人もいたので

ABCのD問題を確実に仕留められるようになるのがしばらくの目標か

 

 

人気ブログランキング
にほんブログ村 その他日記ブログへ
にほんブログ村へ

睡眠負債

土日はずっと寝てました

それと前後して睡眠負債というテーマの記事を読みました

ざっくりいうと目覚ましをかけずに寝たときに

長い時間寝てられるというのは

普段の睡眠時間が足りないので

その借金を返している状態になっているということだそうです

 

そして、一気に返そうとすると結局生活リズムが崩れて

平日に響くので

少しずつ返すのがいいとのことだそうです笑

 

まるっきり自分に当てはまってて笑いますが。

先週は昼寝を解禁してしまい

土日以外で7時間以上寝ることがありませんでした

帰宅後に軽く寝ないと作業をする気にならないというか

で1時間ちょい寝てしまうと結局朝方まで寝られないという悪循環

まあやはり20分程度横になって休むくらいがちょうどいいのだろうか

 

先週は特に勉強をしなかった上、来週はTOEICなので

心を入れ替えたいところなのですが、どうなることか。

 

人気ブログランキング
にほんブログ村 その他日記ブログへ
にほんブログ村へ

環境構築沼

ここ数日はpc環境構築の沼にハマってしまい

いろいろと滞っています

 

エディタはemacs -> eclipse -> sublime text -> atom

と遷移してきたのですが

最近は少しvimも勉強しています

 

作業を全部一つのソフトウェアでやるか

作業ごとに適切なツールを使い分けるか

って結構難しい問題で

まあおそらく後者のほうが効率はいいわけなのですが

どうしても心情的な理由というかロマンというか

前者を追い求めてしまうわけですね

 

入社から配属までの3ヶ月間

やりたいと思ったことは半分もできてない気がする

 

やっぱり時間の管理が難しい

結局こんな時間にブログを書いているわけで

生活リズムもやはり安定はしないわけですが

少しずつ自学の時間が取れてきたので

周りにもだいぶついていけるようになってきたかなぁ

 

人気ブログランキング
にほんブログ村 その他日記ブログへ
にほんブログ村へ

abc64

結果は 1 ◯  2◯ 3◯4 ◯  合計 1000/1000

R168 -> R372

 

問1はやるだけ

 

問2

題意が少しわかりにくかったが

vectorもしくは配列に全部座標を入れて

ソートして最大と最小の差を出力すればいいだけっぽい

 

問3

条件分岐を書いて

コーナーケースに気をつけるだけという感じの問題なのですが

何故か通らない

いろいろ読み間違いをしているのかなーと思ったら

どうも3200以上はどんな色でも選べるのですね・・・

 

エゴサしたらみんなここで詰まっていたらしい

 

問4

左の括弧と右の括弧をカウントする方針

右の括弧を見つけたときに左の括弧のカウンターが1以上だったら減らし、

0だったら先頭に左の括弧を追加する

で最後に左の括弧のカウンターが1以上だったら右の括弧を末尾に追加する的な感じで

accept

 

平易なセットだったらしく全完なのに前回よりも順位が400以上悪い

ARCがなかったので上位者が参加していたというのもあるんだろうけど

 

とりあえず全完は嬉しいのでよかった

 

人気ブログランキング
にほんブログ村 その他日記ブログへ
にほんブログ村へ

abc63

前回のリベンジでスタートと同時に参加できました

結果は 1 ◯  2◯ 3◯4 ☓  合計 600/1000

R18 -> R168

1、2はやるだけという感じ

3は解法はわかるが書き方がわからないという感じで

vectorと配列の違いがよくわからず

配列のままmax_elementを使って最大の要素のインデックスを

distanceを使って求めようとしてコンパイルエラーで詰まる

結果的にvectorで書き直したら通ったので

イテレータ周りで駄目だったっぽい

 

4番は愚直にやると2秒では終わらないということを理解し

いろいろ考えたが駄目だったが

解説を見た感じだと、2分探索で解けるらしいので後で実装しよう

 

ABCの3,4 がarcの1,2と同じだったので4が6割位の確率で解けるようになったら

ABC, ARC 同時開催の場合はARCに移ろうと思う

 

人気ブログランキング
にほんブログ村 その他日記ブログへ
にほんブログ村へ