競プロっておいしいの?(仮)

DDCC 2017 予選 参加記録

DDCC 2017予選に出たよ

DISCO presents ディスカバリーチャンネル コードコンテスト2017

という名前のコンテストですね。で、私はなかなかない好成績を(大嘘)出しました。

10分三完は頑張った!!!

231位ですね。

では解法の話をね

 

A問題:DDCC型文字列

substr(0,2)==substr(2,2)?Yes:No;

1WA!!!!

問題をよく読みましょう

substr(0,2)==substr(2,2)&&S[1]!=S[2]ですね

B問題:鉛筆

鉛筆 1 ダースは 12 本、 1 グロス144 本、 1 グレートグロス1728 本です。

1728*A+144*B+C*12+D

終わり。

C問題:収納

二分探索とか言う強い人もいますが...私は断然ソート+貪欲です。

見てみましょうか。

問題概要

  1. a+b+1<=Cなら2本それ以外なら1本入る棒がある
  2. 箱少なくしよう!!!
  3. (詳しくは読んで...)

私の解法

  1. sortします。
  2. 後ろから要素を見ます
  3. L[i(N-1~0まで回す)]+L[prev]+1<=Cなら
    F[prev]というもうすでにしまったことを表すフラグをtrueにします。
    でprev++します。
  4. F[i]はtrueに。
  5. ans++
  6. このループを繰り返します。終了条件はi=0まで行くか、F[i]==trueになるかのどっちかです。
  7. 詳しくはソースをご覧くださいな
  8. Nafmo's submission

感想。

いや、貪欲が秒で実装できてよかった。

あと本選辞退する人が100人ほど現れないかだけ期待しています。

それでは。今回はここらで

CODE FESTIVAL qual A 参加記録(解説ではない)

こどふぇす!

参加資格もないしあっても通りませんが、書きましょう。

A問題:Snuke's favorite YAKINIKU

文字列をStringで受けて

(S.substr(0,4)==”YAKI”)?Yes:No;

B問題:fLIP

全探索しました。

1~N行ひっくり返して1~M列ひっくり返したときにKと同じになりますか?だけ試して終わりにしました。

っていうのに時間を溶かしました

M*i-(j*i)+j*(N-i)==Kみたいなことやった

ウソっぽい…?

 https://beta.atcoder.jp/contests/code-festival-2017-quala/submissions/1617321

C問題:

えぇ、なんか(0,0)から順番に対応するところ埋めていけ!wとか思ったんですが、反例が出たので死ですね。

 

レートの上がりは謎。下がる気がする

おまけ。レート。

更新を確認し次第画像が貼られます


f:id:nafmo17:20170923232304j:image
キメた

1041->1055 (+14) Highest!!!
perf.1166
やったぜ。

ABC 073 参加記録(一週遅れ)

ABC073 Only

いや、最近ずっと考察してて書く暇がないのでまとめて書くよ((((

いつもは撤退して、書いてるんですがねぇ

A問題:September 9

string で受けて S[0]=='9' || S[1]=='9'

 

 

B問題:Theater

被らないらしいので、

全クエリに関して

r-l+1を足し算。終わり

C問題:Write and Erase

sortします。

if(A[i]!=A[i+1])のときに偶数なら左っ側が偶数なら消える

奇数ならans++

C問題:joisino's travel

ワーシャルフロイド法を用いると全部の距離が求められますね。

でその後はNextPermutationで全探索!

 

nafmo.hatenablog.jp

 

間に合いますね。

おまけレート

951→959 +8 (highest!!!)

なんかやる気ありませんでした(当時)

ARC082 参加記録

ARC 082

いやぁ、何とかレート単調減少から復帰しました。

今まで書いてなかったのはそういうことです。

C:Together

これ、私の解法想定解ではないと思います。

  1. Aの各要素の個数を取る(配列を10^5個用意した())
  2. で、3~Nまで 全部尺取っぽく回すといい感じになる(は?)
  3. いわゆる全探索
  4. Submission #1558834

D:Derangement

  1. A[i]==i+1になるものを探す
  2. 見つかったらインクリメントする
  3. 連続してそれが起こる回数を記録する。
  4. その回数が0以外で2で割ってたあまりが0になったときはデクリメントして辻褄を合わせる
  5. 終わり。
  6. (雑ですいません)
  7. Submission #1561673

おまけ

951(+2) Perf.975

もうレートあがんねーな