Naomi's notebook

Naomi's notebook

2019-01-01から1年間の記事一覧

AtCoder Beginners Selection in Rust

Rustをやってほしいという声が出たので TypeScriptもお勧めがあったのですが、忙しくなってきたのでとりあえずしばらくこのABSシリーズはお休みしようと思います過去の記事 naomi-notebook.hatenablog.com naomi-notebook.hatenablog.com naomi-notebook.hat…

AtCoder Beginners Selection in Clojure

Clojureのサンプルコードを見ていたらHaskellっぽくて面白そうだったのでやります。ちなみに今はじめて見た言語です。 難しそう コードは短くなる努力は特段しませんが、まあまあ短くスッキリさせることは意識して書きます。参考にしたサイト clojure.core n…

☆ナップサック(diverta 2019 Programming Contest 2D - Squirrel Merchant)

まだ500が全部埋まったわけではないんですが、典型問題っぽい600が解けるとうれしいなあみたいな気持ちになったりすることが多い(500以下は発想問題であることも多い)ので、コンテスト中に糸口はつかめていたものの解ききれなかった問題を中心に600もたま…

AtCoder Beginners Selection in Ruby 完走

順番的には次はPHPだけどC++とJavaに影響を受けたっぽいしそんなに代わり映えしないだろうか? … Ruby!!!!(純粋関数型言語との壁は大きいのでHaskellほどではありませんが……)— 竹麻呂 (@Takemaro_001) 2019年6月28日…というわけでRubyをやります:-) ちなみに…

AtCoder Beginners Selection in Java

https://t.co/qFatTDC1Rl においてC++より人気っぽい言語を選んできたので次はここから言語を選んでABSを解きます— Naomi Yuritani (@NaomiatLibrary) 2019年6月27日 この流れだとC#をやるはずなんですが、資本主義に生きる人間なので左を見て唐突にClojure…

古典ギリシア語導入のためのメモ

教科書:古典ギリシア語初歩(水谷智洋) ここに書いてあること・だいたい10課まで すべて間違っている可能性が高いです 個人用メモなので、個人的な変な覚え方とかがあります アクセントを打つのめんどくさすぎるので、初出の単語の有声無声記号と重要なと…

AtCoder Beginners Selection in Bash 完走

https://t.co/qFatTDC1Rl においてC++より人気っぽい言語を選んできたので次はここから言語を選んでABSを解きます— Naomi Yuritani (@NaomiatLibrary) 2019年6月27日 AtCoder Beginners Selection atcoder.jpHaskell naomi-notebook.hatenablog.com Javascri…

AtCoder Beginners Selection in JavaScript 完走

atcoder.jp JavaScriptでACしていきます。 ちなみにコードゴルフでしかjavascriptを使ったことがないです。Haskell-> naomi-notebook.hatenablog.com メモ 等値演算子(==)と同値演算子(===) 最後の改行を.trim()とかで取り除かないと色々とバグります。こん…

AtCoder Beginners Selection in Haskell 完走

naomi-notebook.hatenablog.comこれの続きです AtCoder Beginners Selection - AtCoder ABC085C - Otoshidama こんなループもリスト内記法で実装できます(これって一般的な書き方なんでしょうか?全く知りません) import Control.Applicative import Contr…

AtCoder Beginners Selection in Haskell 〜B問題

atcoder.jpHaskellでACしていきます メモ エラー:pattern match failure in do expression はだいたい入力を前の問題から変え忘れたことによりパターンマッチしていないというエラー PracticeA - Welcome to AtCoder -- import module import Control.Appli…

☆ゲーム(エクサウィーズ2019C - Snuke the Wizard)

atcoder.jp 考察過程 いちいち更新してると2乗かかってしまう 一回の操作による移動を手早くできる方法がないかな? 最終的に端っこから出てしまうか出てしまわないかが大事。 →最終的に端っこにあるゴーレムがあるとして、そうなってしまうゴーレムの初期位…

文字列操作(AGC019B - Reverse and Compare)

atcoder.jp綺麗に思いついたし時間もそこまでかからなかった。実装が簡単だったのでよかった やっぱり計算量が大きい解法をまず考えて縮めていくのがよいっぽい。 考え方の途中経過 あるi,jを選んだ操作によって、場所が入れ替わる(int)(j-i+1)/2ペアについ…

☆(途中)数学的考察(ARC099D - Snuke Numbers)

問題 D - Snuke Numbers この回は確か参加したけどこれが解けなくて、まあギリギリ冷えなかった回。完全に忘れたので一から解いて行く。 これも含めてなのですが、最近のコンテストで冷えがちなのは500点(DかE)が数学的な問題で、数学的センスが壊滅的だか…

ゲーム(AGC020B - Ice Rink Game)

問題 atcoder.jp単純に逆から辿っていくので結構計算量も小さそうなんだけど、正確なところはわからないので、とりあえず実装してみよう。->計算量K(10^5)で操作できた。すごく時間がかかってしまった(最初から思いついてたんだけど例外がないか確かめるの…

DP(AGC023B - Find Symmetries)

atcoder.jp少し時間かかりめだったけど自分で綺麗なものを思いついてよかった。 解法 計算量的にN^3 ここで、A ケアレスミス 数字を読み込んだ後まだ改行が残っているため、一度無駄に読み込まないと次に読む文字が改行文字になってしまう。 コード #include<cstdio></cstdio>…

☆操作(AGC024B - Backfront)

atcoder.jp師匠の問題で操作するゲーム系のやつ、前も見た。確か後ろの状態から戻ってく感じだった… ここでも使えそう…と思ってその方針で長いこと考えたけど使えなかった、もっと簡単だった 解法 与えられた数列の部分数列をとって、それが連続()であり単…

☆二項係数(ABC127E - Cell Distance)

atcoder.jp時間内にこれを解き終わらず、さらにDでミスったため激冷えし冷め冷めになってしまった一回。リベンジしていきたいと思います。 まず、式をXとY独立に考えていいというところまでは誰でも思いつくと思います。 ABC途中の考察では色々めんどくさい…

☆数列(AGC010B - Boxes)

atcoder.jp yutaka1999さんの問題は面白いなあ(個人的には難しいですが…)一回の操作で、選んだ箱からN 個、他の箱から1,2,3...N-1個取る。 ☆1回の操作で取られる石の個数は1/2*N(N+1)なので、何回操作を行うべきなのかがわかる(または操作によって達成で…

Railメモ

Esolangのメモ第二弾 esolangs.org レール一覧 $ 'main'を実行する(必須) '|-/\'で道を作った順にプログラムが動く 道が途切れたらクラッシュ ただし繋げられる組み合わせは限られている。 '|' connects to itself and '\' and '/' '-' connects to itself …

Cubixメモ

esolangs.org ここに書いてある以上のことはないんだけど、英語だし表現が少しわかりにくいので(回転とかsidestepとか)自分用にメモ コマンド一覧 入出力 i - 入力から一文字読み込む、入力がなければ-1 I - /-?\d+/ iにマッチするまで(例:改行や空白区切…

(AGC002 C - Knot Puzzle)

atcoder.jpロープの結び目が全て切れないのは、どの隣同士の二つのロープを選んでも長さの和がL以上にならない時。 なぜなら、L以上になる隣同士のロープの組みが存在する時、その二本を中心として両端から結び目を解いていけば良い。(これを出力) 逆に、存…

☆幾何( AGC001B - Mysterious Light)

新元号令和おめでとうございます。 atcoder.jp うわ苦手…最初は三角形に対して光を射出してるけど、そのあとは光の軌跡によって区切られた平行四辺形に対して射出していると考えて良さそう。ここから解法をひねり出します。 この時両辺がa,b(a>=b>0)の平行四…

gcd(C - GCD on Blackboard)

atcoder.jp これは300点問題なんだけど、なんか話題になっていたのでまずユークリッドの互除法でgcdを求めるコードを書いておく。これの計算量はラメの定理により十進法での桁数くらいらしいですね(知らなかった)、すごい。まず、書き換える時は10^9以下な…

しゃくとり法の条件(ARC098D - Xor Sum 2 )

atcoder.jpXor出てきたばっかりだ いらなかった考察 まず準備としてを求めておく。これによって区間の和が定数時間で求められる。 この前の問題 でも見たように、xorの歩けたが1になる組み合わせはlogNで見つけられるんだよな…でもたし算の組みだけでも網羅…

組み合わせる(ARC096D - Static Sushi)

atcoder.jpまず、摂取カロリーを最大化したいので、当然前を通った寿司をスルーするということはできません。よって移動方法を考えることになります。。 また、スルーしないという条件より、最低でも全ての寿司の前を通った時には店を出なければいけませんし…

発想(ARC093D - Grid Components)

atcoder.jpこれ昔参加したコンテストで、ツイッターに流れてくる解法を見て天才か!?ってなったので印象に残っている 最も感動した問題の一つ。なので永遠に記憶が消えないと思うからACしておこう。カラクリはとても簡単で、連続した領域の数を調節するには…

xor(ARC092D - Two Sequences)

atcoder.jp もうだめだ 足し算なので分配則が成り立ったりはしないですね(ちなみにxorは分配則、結合則、交換則などが成り立つ排他的論理和(Exclusive OR)の性質) やる気が0なので5分で解説をちらっと見ました。 ビット毎に調べるという情報とmodを取ると…

累積和、いもす法(ARC089D - Checker)

atcoder.jpまず、市松模様を並行移動していくと、縦横それぞれKずつ動かした時に塗り方としては全く同じになる。また、2Kのマスをとると完全に繰り返しになるので、座標は2Kで割った余りにして良い。 白に塗るマスの指定はどちらか方向にKずらすことで黒く塗…

DP(ARC087D - FT Robot)

atcoder.jp最初のFの分だけx軸正方向に進まなくてはならないので、進んだところからスタートします。Tによって分離されるFの連続について、上下と左右の方向どちらに進めるFかで場合わけでき、それぞれについて組み合わせてちょうどxやyになる組み合わせがあ…

考察ワーシャルフロイド(ARC083D - Restoring Road Network)

atcoder.jpまず、全ての頂点の間に の辺を張ります。その状態で全頂点間最短経路をワーシャルフロイドで求め、その最短距離が実際の最短距離より小さい時、そのような最短経路は存在しません。なぜなら、 ①まず、Aのu行目について見ていって、その行の中で最…