3匹の猫

みみねこの競プロ精進メモ

AtCoder Regular Contest 108参加記(~C問題)

300(1)-400-500-0-0-0で1ペナ3完1200点。 A - Sum and Product を満たす正整数の組は個あり、これらの組全てに対してかどうか判定すると、計算量で解ける。しかし今回は制約がと厳しいので、もっと効率の良い解法が必要となる。を満たす正整数の組はの約数の…

AtCoder Beginner Contest 183の解法・感想

ABCに出るのは久々でした。100-200-300-400-500-0(2)で0ペナ5完1500点。 A - ReLU 問題文の通りの値を返す関数を実装する。入力された値によって出力される値が異なるので、条件分岐を用いて書けばよい。計算量は、。 B - Billiards 入試数学とかでよく見る…

ACL Beginner Contestの感想

略称はABLらしい。明日から使えるムダ知識をあなたに100-200-300(1)-0-0-0で1ペナ3完600点。 A - Repeat ACL ACLという文字列を回だけ出力する。は5パターンしかないのでif文を用いて5通りの分岐を記述すると解ける。また、ループを用いると問題文の処理をそ…

実力もないのに数学力だけで水色に這い上がるな

※AtCoderとACLを非難する記事ではありません。 実力もないのに数学力だけで水色に這い上がって生きてきた僕は今回のABLで茶パフォを出しました。原因はACLに含まれているものを中心としたデータ構造の性質の理解と、その応用例に関する知識不足です。つまり…

AtCoder Beginner Contest 179の感想

「愚直にやると遅いから高速化する!」の考えは大事。100-200(1)-300-400-500-0で1ペナ5完1500点。 A - Plural Form 文字列を複数形に変換する。文字列の末尾がsかそうでないかで処理が変わる。具体的な処理の流れとしては、入出力を除くと「文字列の末尾の…

AtCoder Beginner Contest 178の感想

具合が悪いのでさらっと書きます100-200-0-400-0(3)-0でノーペナ3完700点。 A - Not 1なら0を、0なら1を出力する。if文で実装できるし、排他的論理和でエレガントに書くこともできる。 B - Product Max 全通り試すと間に合わない。(B問題にしては厳しいね?…

AtCoder Beginner Contest 177の解説・感想

100-200-300-400-500(1)-0で1ペナ5完1500点。 A - Don't be late 先週も同じような問題文見たな...(既視感)2つの解法を紹介する。どちらも、「問題文で与えられたすべての変数を同時に見ない」のが特徴的。解法1:分後の待ち合わせ時刻に間に合うためには…

AtCoder Beginner Contest 176の解説・感想

100-200-300-400(2)-500-0で2ペナ5完1500点。 A - Takoyaki 分間に個のたこ焼きを作れるので、実際に1分ずつシュミレーションしていけばよい。現在焼いたたこ焼きの個数を変数で管理して、分経つごとに個増やしていき、初めて個を超えた時の時間を出力する。…

AtCoder Beginner Contest 174の感想

100-200-300-400-500-0で0ペナ5完1500点。 A - Air Conditioner が以上かどうかで条件分岐したいので、if文を用いて実装する。計算量は。 B - Distance 個ある点それぞれについて、「原点からの距離が以下か?」という質問に答える。原点からの距離が以下で…

M-SOLUTIONS プロコンオープン 2020の感想

100-200-300-400-0-0 で4完1000点。早解きで良いパフォが付いてもあまりうれしくない。 A A - Kyu in AtCoder if文で条件分岐を書いてもいいが、8通りもの分岐を手打ちするのは面倒だし時間がかかる。ここで、レーティングが200変わるごとに級が1減るという…

エイシング プログラミング コンテスト 2020の感想

(タイトル間違ってたのを修正。ABCではない。) NoSub。Cから解くと決めていて、Cが解けなかった。 A atcoder.jp 以上以下の範囲にある整数のうち、の倍数であるようなものの個数はで求められる。累積和的な考えを使うと、答えはである。 また、普通にルー…

AtCoder Beginner Contest 173の感想

100(1)-200-300-400-500(2)-600で3ペナ全完2100点、時間はペナルティ込みで98:33。 A atcoder.jp A問題を舐めていて、n%1000を出力してWA。サンプルの重要性を知る。 1000円ずつ払うと考えて、実際にループを使って1000円ずつ引いていった。こういう処理は割…

AtCoder Beginner Contest 172の感想

Twitterに垂れ流すと遡るのが大変なのでブログに書くことにした100-200-300-0(1)-0-0 で3完600点。All Submissions - AtCoder Beginner Contest 172 A atcoder.jp 式をそのまま書く。足し算よりかけ算の方が優先順位が高いのでa + a*a + a*a*aみたいに愚直に…

【C++】priority_queueのように最大値を取得しつつ、任意要素の削除もしたい!!

わがままをかなえるシリーズ以下、競プロでの使用を想定しています。 C++をベースに書いていますが、データ構造についての話なので他の言語でも通用すると思います。 priority_queueで出来ること priority_queueは、その名の通り優先順位付きキューで、追加…

【C++】chmin(), chmax() は1行で書けるか?

オンライン授業ってリアルタイムで出席する必要ある?(愚痴) 事の発端 以下は競プロの話である。.clang_formatによる自動フォーマットの設定を弄っていて、 AllowShortFunctionsOnASingleLine: All とかの設定をすることで、短い関数をそのまま改行せず1行で…

ランダムに配列をシャッフルする「Fisher-Yates shuffleアルゴリズム」を理解した

2020/05/10 17:57 追記:shuffleがshufflになっていたのを訂正 シャッフルアルゴリズムとしてはかなり有名な部類だそう。Fisher-Yatesってなんて読むんだろう。 設定、目標、制約等 長さの順列をランダムに並び変えたい。効率の良い方法を見つける。 ただし…

【C++】グローバルに置いたvectorの要素数を入力に応じて変更したい。

C++

競技プログラミングでdfsとかする時に、配列をグローバルで宣言すれば引数にいちいち含めなくても良くなるので楽だと思った。しかし、グローバルで宣言したvectorは要素数(長さ)をあらかじめ決めておく必要があるっぽい。困った 要求 以下のように入力が与え…

放課後5時半以降の教室施錠について

※この記事は 苫小牧高専 Advent Calendar 2019 23日目の記事です。 adventar.orgアドベントカレンダー昨日の記事は卒業した今でもTwitterで絡んでくれるかっこいい先輩mktakuyaさんでした。今回は数学の話をしようと思ったんですがあまりにも苫小牧高専に関…

2019/2020 日本情報オリンピック(JOI)2次予選参加記

お疲れさまです。ABC3完とD部分点で330点でした A - ポスター (Poster) 考察・解法・実装など B - いちご (Strawberry) 考察・解法・実装など C - 桁和 (Digit Sum) 考察・解法・実装など D - テンキー (Tenkey) 考察・解法・実装など E - じゃんけん式 (Roc…

Brainfuck縛りのバーチャルコンテストを開いた

※この記事は、「Brainf*ck Advent Calendar 2019」 2日目の記事です。 Brainf*ck Advent Calendar 2019 - Adventar この記事は? タイトルにもある通り、「難解プログラミング言語Brainfuckのみを使用する」という縛りでAtCoder上の問題を解くバーチャルコン…

Aizu Competitive Programming Camp 2019 Day 1 C: 同値命題

典型って感じがした、でもその典型知識を知らなかった… 問題文概要 個の命題があり、各命題にはまでの番号が振られている。また、『ならばである』という情報が個与えられる。 『ならば』かつ『ならば』であるとき、命題と命題は同値であるとする。 各命題に…

パソコン甲子園2019予選で悪魔に襲われた話

問題1,2,3,4,5の5完(1ペナ)でした。ペナルティを避けるために、提出は後半にまとめてやる戦法で挑んだ。 問題1 柴犬の数 4つの数値が与えられるので、その和を返す。これは相方が解いた。 問題2 アスキー文字 タイトルだけ見たらびっくりするが、要するにif…