えびちゃんの日記

えびちゃん(競プロ)の日記です。

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

PAST アルゴリズム実技検定 #1 解説

これいる? 問題へのリンク. 前半の解説は こちらのブログ に詳しいです. A – 2 倍チェック / Is It a Number? #include <cctype> をすると isdigit(c) というのが使えて,c が数字かどうかを判定できます. 返り値は 0 か 0 以外なので,以下のようなコードではこ</cctype>…

Codeforces Round #395 (Div. 2) E: Timofey and remoduling

これのお話を書いてみます. codeforces.com 問題概要 素数 \(m\) と,要素数 \(n\) の数の集合 \(A\) が与えられる. 次の条件を満たす \(x\) および \(d\) が存在すればそれを出力せよ. 「この集合を並べ替えてできた長さ \(n\) の数列のうち,\(i\) 項め…

競プロで踏みがちな C++ の罠

定型文 この記事は Competitive Programming (1) Advent Calendar 2019 の 17 日目の記事です. adventar.org まえがき えー,未定義動作という言葉を知っていますか? 必要に応じて 昔の記事 を読むといいかもしれません. C++ を書く上でよく「環境依存」…

ICPC 2019 Asia Yokohama Regional 参加記

参加記を書いていきます. icpc.iisf.or.jp これに参加してきました. 予選のときの記事 Day 0 前泊をしないと破滅する確率がグッと高まるので,まず移動をします. 空港で遊びます. この英字フォントがなになのか気になっています pic.twitter.com/4lbLcIL…

Re: 明日使えないすごいビット演算

たぶん今日も使えないと思うんですけど(名推理). タイトルの元ネタは これ. 上のスライドでは,ワードサイズ \(w\) に対して,以下の演算を \(O(\log w)\) time で求める方法が書かれています. 立っている最上位のビットを取り出す:msb 立っているビッ…

優先度変更可能なヒープについて

Fibonacci ヒープを使うと優先度をならし定数時間で変更することが可能ですよー,という話を 書きました. どうやら,Java だと,そういうのがうれしいらしいです? これめっちゃ嬉しいデータ構造だJava使ってると、new Edge(int dest, int distance);のコス…

Fibonacci ヒープを実装しました

参考にしたのは,いつもの CS166 のスライド. 「できる操作」「その操作でできるうれしいこと」「実装」の順に書きます(予定). 英語が楽に読める人は上のスライドを見るとよさそうです. できる操作 まず,これはヒープなので,優先度つきキューの基本三…

HCPC 2019 Virtual Vol.30

チーム練をしました.久々ですね. onlinejudge.u-aizu.ac.jp B は知っています.頭がついていないためすぐ書けません... A をつたさんに任せている間,紙でちゃんと詰めて,B も AC. C は見たことある.つたさんが一発でサンプルを合わせていて天才.AC.…

ACPC 2019 参加記

JAG 夏合宿 2019 に続いて,ACPC 2019 に参加しました. いろいろ忙しくて後回しにしていたので記憶がもうだめです. atnd.org Day -1 = JAG 夏合宿 2019 Day 3 ホテルに着きました.一日終了です. Day 0 疲れていたのでほとんどホテルにいました. 作問の…

JAG 夏合宿 2019 参加記

JAG の夏合宿に参加していました. いろいろ忙しくて参加記を書くのを後回しにしてしまっていました. jag-icpc.org Day 0 夕方の飛行機で東京に向かうんですが,お昼前くらいに空港に行って遊んでいました. すみっコぐらしのボールペンを買ったりしました…

C++ の違法識別子について

警察だ!(インターネット meme) 以下の正規表現で表される識別子は我々は勝手に使ってはいけません. 処理系に予約されています.コンパイラの内部利用や標準のヘッダ(<algorithm> とか)で使うためのものです. .*__.* _[A-Z].* _.*(グローバル名前空間のみ) 正規</algorithm>…

マクロについて

人々がマクロをめちゃ使ってるんですが,罠を理解してる人が多いとは思えないのでいくつか書きます. 定数定義 constexpr 使ってくれ〜. #define INFLL 1e18 int main() { ... if (x == INFLL) return puts("-1"), 0; } のようなコードは競プロでありがちで…

未定義動作は未定義動作だよという話

人々は未定義動作に多くを期待しがちではという気持ちがあるので書きます. まず「これこれは未定義動作です」と言ったとき,目に見えるやばいこと*1が発生するとは限らないです.「なんかうまくいく」とか「必ず実行時エラーになる」とかは保証されていませ…

std::lower_bound の罠について

どうやら罠らしいので書きます. 冷静に考えると、初心者の人はなんで set は要素の有無の判定が高速なのか、どのくらい高速か、などはわかってないはずで、そうなると、std::lower_bound で求めようとするとどうしてだめなのかがわからなくて当然という気が…

C++ の multiset の罠について

std::multiset の罠っぽい仕様と,その仕様なのが妥当だと思えそうな説明をするやつをします. 気が向き次第,別の罠や初心者向け tips も今後扱うと思います. 罠 以下の二つについて正しく答えられますか? erase std::multiset<int> ms; ms.insert(0); ms.inse</int>…

母関数のお勉強をしました

母関数のお勉強をいくらかしたので,わかった気になったことを自分用にまとめました. github.com もっと体系的にお勉強するべきではありそう. えびちゃんが今お勉強するべき内容はこれではなさそうな気もするね.

行列累乗なしで Fibonacci 数列を求める

(注意)たぶんネタ記事です.素直に行列累乗してください*1. 唐突なんですが,以下の式を \(10^9+9\) を法として計算してみましょう. (308495997 ** i - 691504013 ** i) * 723398404 Python にまかせます. >>> [(308495997 ** i - 691504013 ** i) * 72…

TTPC 2019 参加記

TTPC 2019 に参加してきました. atnd.org atcoder.jp Day 0 前日入りして晩ごはんを食べた後うたた寝してしまい,夜寝られなかったのでこどふぉをやっていました. Day 1 「Day 1」とか言って,"TTPC" は一日だけなんですけどね. 前日にこどふぉをやってい…

AtCoder Beginner Contest 137 F: Polynomial Construction

これの解説を書きます. atcoder.jp 問題概要 素数 \(p\) と長さ \(p\) のバイナリ列 \(a_0, \dots, a_{p-1}\) が与えられる. \(f(x) = \sum_{i=0}^{p-1} b_i\cdot x^i\) であって,\(f(j) = a_j\) となるようなものの係数 \(b_i\) を求めてね. ぼんやり思…

包除原理のお勉強をしました

定番なんですが,これを読みながら勉強しました. (Chrome だとサムネイル表示されない?) https://compro.tsutaj.com/archive/181015_incexc.pdf 明日の朝までに包除原理の完全理解者になるのでそのつもりで— えびちゃん (@rsk0315_h4x) 2019年8月9日 あ…

AtCoder で黄色になりました

わーわー,えびちゃんも黄色になったー! pic.twitter.com/qC8oFMx74C— えびちゃん (@rsk0315_h4x) August 4, 2019 ついに黄色になりました. rsk0315.hatenablog.com rsk0315.hatenablog.com これらと合わせてです. ポエムを書きたいので書きます. TL; DR…

Codeforces で紫になりました

ねーねー,えびちゃんも紫になった! pic.twitter.com/GcA1cRnva1— えびちゃん (@rsk0315_h4x) July 30, 2019 えびちゃんも紫になりました. ところで「葡萄色」と書いて「えびいろ」と読みます. 紫になるまでやったこと 近々 AtCoder で黄色になる予定なの…

HUPC 2019 参加記

HUPC 2019 に参加しました. 北大は,ACPC や RUPC で作問の担当をするのは以前からしていたんですが,合宿を開くのは初めてなので(主につたさんが)大変だったと思います. ほとんどのことをつたさんがやっていて,えびちゃんにはとてもまねできないなぁと…

ICPC 2019 国内予選

えびちゃんは four-t のことがとってもすきだったんだなぁというのを実感しました. four-t というのは北大のチームで,つたさん (tsutaj) / たぶくん (TAB) / えびちゃん (rsk0315) の三人です. three-t なのでは? とか聞こえますが一旦無視します. four…

HCPC 2019 Virtual Vol.27

チーム練をしました. onlinejudge.u-aizu.ac.jp 正直あまり覚えていない. A つた定期で,B 後回し定期で,C すぐ通る定期で,B なんとかなる定期. B 書いてたらいろいろ生えてて,E が AC. D はえびちゃんの申し訳ないで 1 TLE をしたけどすぐ AC. F も…

Topcoder で黄色になってからしたこと

自分の名前が黄色で表示されてるのを見てにっこりするのを何回かやった. これになりたい人生だった. @qnighy SRM に 2 回参加しました— 準急くき (@semiexp) March 15, 2014 あと早く AtCoder で Beginner を卒業したいんだけど,まだまだ足りてない気がす…

HCPC 2019 Virtual Vol.26

チーム練をしました. onlinejudge.u-aizu.ac.jp A はつたさんが手間取る不定期. たぶくんが C を通す. つたさんが A を直してる間にえびちゃんが紙で詰めて,どっちも AC. D と E をつたさんが一瞬で終わらせてて天才か? となる定期. G 構文解析じゃー…

four-t practice 2019 Vol.12

チーム練をしました. onlinejudge.u-aizu.ac.jp A つた定期. B はえびちゃんがさくっとできそうなのでさくっとやる. 入力形式がつらいっぽい感じだとえびちゃん以外がつらいことになって,相対的に得をしがち. C はたぶくんがちょっとつらそうにしてるの…

four-t practice 2019 Vol.11

チーム練をしました. onlinejudge.u-aizu.ac.jp 明日もします. pic.twitter.com/uxQPlVHSFL— 7/14・15 HUPC (@homuhomucomp) July 2, 2019 ばちゃ A つた定期.B は簡単そう.書こうとしてたけど,C のがえびちゃんぽいらしい? たぶくんに B を投げた(え…

HCPC 2019 Virtual Vol.25

チーム練をしました.ragan のばちゃに混ざった後なのでつかれてました(これは ragan の人たちもそうなんだよね). onlinejudge.u-aizu.ac.jp A はつたさん定期.えびちゃんは B をやっててあまり思い出せないけど,ちょっと時間かかってたぽい? えびちゃ…