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

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

もうレートあがんねーな

JOI 11th('11/'12) - 4 パスタ

解説記事ではないd嘘です。

Nafmoです。Twitterを見ていただいてる方はわかるように、

私は現在、動的計画法を始めとした、競プロっぽい問題が全く解けません。

この問題は動的計画法で えい ってすれば解ける問題なんですが、なんせかけません。

Twitterは流れるし...うーんって考えた結果ここにメモっとこうかなっという発想になりました。

本当に何もわからない()

が、通っちゃいました(追記)

あ、ここで補足なんですが、私がDPといったときは動的計画法を指します。

メモ化再帰で書くDPはメモ化再帰、ループで書くDPはループDPなどと記すことが多いという注意書きをね。

メモ化再帰用関数の名前をDP、メモ用変数をdp...などと書く事が多いです。

問題概要。

JOI 2011-2012 予選 問題4

  1. パスタのメニュー、3種類を選びながら食べる
  2. N日目まで食べたとする。何通り?
  3. ただし、3日連続同じメニューの場合を除く。

めっちゃ簡単そう。に見えるじゃん?

できません。

私の考察。

  1. はじめにDP(x,y)=(x日目にyを食べたときの通り数)としました。
  2. 詰みました。(何もできなかったので)
    (eiyaさんが考察ツリーを作って突破していました...)
  3. で、考えを改め引数を増やしました。
  4. DP(x,y,z)=(x日目にyをとり,x-1日目にzを取ったときの通り数)としてみました。
  5. dp[x][y][z]=dp[x-1][z][i(1~3)]の和(ただしy==z==iの時を除く)
    その日食べれないものを指定していた場合は0を返す
    1日目は食べれるものを指定していた場合は1を、それ以外は0を返す
  6. というような感じになるように目指して、実装をはじめました。

書き上げましたが、思っている通りにかけてる気がしないですね...

状況遷移も怪しい動きをしているんですよね...

1通りしかないところ3通りとカウントしてるし

あ、見えたぞ(遅い。)

1日目の処理がおかしい。

あ、通ったwwwwwww

Submission #1477603 - WAソース

ここの差、0日目を1 2 3選ぶってことをカウントしていた模様。

それをif文で外しました

Submission #1477666 - ACソース

通っちゃったんだけど?

できました。(落ちねぇ....)