sankantsuのブログ

技術メモ・競プロなど

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

TikZ におけるスタイル指定と pgfkeys

概要 TikZ には,グラフィクスの見た目などを調整するための機構としてスタイルというものがある. この記事では, グラフィクスの描画に特定のスタイルを適用する方法 自分でスタイルを定義する方法 スタイルの機構そのもののベースとなっているpgfkeysライ…

Python の descriptor

概要 Python の descriptor は,属性 (attribute) へのアクセスをフックに関数呼び出しを行う機構である. descriptor の機構は,メンバ変数の getter や setter を簡潔に定義できるようにした property などに使われている. ここでは, descriptor の基本 …

Python の decorator

概要 本記事では,python の decorator について decorator の基本 syntax sugar 引数をとる decorator についてまとめた. decorator の基本 decorator とは,関数を引数にとってその関数の動作になんらかの変更を加えた新しい関数を返すものである. 簡単…

bash の TAB補完 をカスタマイズする

概要 bash はコマンド名や引数の補完機能を備えており,入力中に TAB キーを押すことで候補を表示したり残りの部分を入力したりできる. ただし,デフォルトであらゆる状況に対して適切な補完が効くわけではないので,文脈に応じて補完候補を自分でカスタマ…

SATySFi のマクロ入門

この記事について SATySFi のマクロは,インラインコマンドやブロックコマンドの形で多段階計算によるプリプロセス機構を利用できるようにするものである. SATySFi上でDSLを実装してパッケージなどとして提供するような場合には,最終的にマクロによるイン…

SATySFi の多段階計算入門

この記事について SATySFi には多段階計算という機構があり,文書のプリプロセスに利用することができる. ただ,現状まとまった資料がないので使ってみようと思っても敷居が少し敷居が高い. この記事は多段階計算について, 何のためにあるのか どうやって…

SATySFi の set-math-char プリミティブで遊ぶ

概要 SATySFi に比較的最近追加された set-math-char という数式モード内での入出力文字の対応を指定するためのプリミティブで遊んでみたという話 set-math-char の仕様 (推測込み) SATySFi version 0.0.7 で追加された set-math-char というプリミティブが…

ABC257 感想・反省

atcoder.jp 結果 atcoder.jp ABCD4完(74:55 + 4ペナ) Performance: 1175 Rate: 1293 -> 1280 (-13) しょうもないWAが多く冴えない回だった コード github.com 各問題の振り返り A 特定のパターンの文字列の文字目を取り出す問題 文字列を実際につくらなくて…

ABC256 感想・反省

atcoder.jp 結果 atcoder.jp ABCDE5完(57:45 + 1ペナ) Performance: 1544 大きく詰まるところはなく5完できたのでとりあえず満足. コード github.com 各問題の振り返り A を出力するだけ cmath の pow 関数は浮動小数点で計算するので,一応整数型で pow を…

AtCoder で水色になった

初めてコンテストに参加してから2ヶ月半,13回目のコンテスト参加で水色レートを達成することができた. AtCoder で当初からひとつの目標としていた水色に到達したので,やってきたことなどをまとめてみたい. 時系列振り返り 参加開始当初の状況 情報系の修…

AHC 011 参加記

atcoder.jp 問題概要 の盤面が与えられ,各タイルには4方向のうち1つ以上に線が伸びた図形が描かれている. 空きマスを適当に移動させることでタイルの絵をつなげて,できるだけ大きい木がつくられるようにしたい. 左: 初期盤面, 右: 完成図の一例 結果 プ…

ABC254 感想・反省

atcoder.jp 結果 atcoder.jp ABCDE 5完 (68:16 + 0ペナ) 久しぶりにペナルティ0で切り抜けられたのは嬉しい. 今回で無事レートも入水することができた. コード github.com 各問題の振り返り A 3桁の整数の下2桁を出力する問題 int よりも string で受け取…

ABC253 感想・反省

atcoder.jp 結果 atcoder.jp ABCDE5完 (91:15+4WA) 5完で1147しかパフォ出ないのは正直しんどい (レート微減) Eが比較的簡単だったために解答時間でかなり差がつく回だったか. 最近WAが多いのと,そもそも速解きがやや弱い気がするので改善する必要がある.…

pgffor のまとめ

概要 pgfforパッケージは,多くのプログラミング言語で用いられるfor文と似た構文として\foreachコマンドを提供する. pgfforパッケージはtikzパッケージを読み込むと自動的に読み込まれるようになっており,tikzによる描画で繰り返しを行うときに用いること…

ABC252 G - Pre-Order 解説

atcoder.jp 与えられたDFSの行きがけ順 を達成するような 頂点の根付き木の数を求める問題. 部分木の形はその部分木の外にある頂点の置き方にはほとんど影響を与えないので,部分木ごとに数を数えて組み合わせる動的計画法が有力に見える. そこで次のよう…

ABC252 感想・反省

atcoder.jp 結果 atcoder.jp ABCDEF6完 (72:26+4ペナ) ペナルティ多いのは少しもったいないが,6完は初なので嬉しい. 青パフォも初. コード (C++) github.com 各問題の振り返り A 与えられたASCIIコードに対応する文字を出力する問題 文字コードとか知らな…

LaTeXの\@ifnextcharマクロ

概要 LaTeXカーネルで定義されている\@ifnextcharというマクロについて説明する. このマクロを使うとトークンの先読みを行うことができ,オプション引数の実装などに応用できる. カーネルやパッケージのソースにはよく登場するので,これらを読んでみたい…

TeXでドラゴン曲線を描く

概要 ドラゴン曲線というフラクタル曲線の一種をTeXを使って描いてみる. この題材はTeXブックに載っている有名(?)なもので,今回は元のプログラムを参考にしつつ簡易的なバージョンに書き直した. 出力結果を画像にすると以下のような感じ. コード github.…

ARC 140 感想・反省

atcoder.jp 結果 atcoder.jp A1完 (64:23 + 2ペナ) 初めて実レート減少 最初に参加したARC(138)でも1完でひどいパフォを出し,今回はせめて2完したいと思っていたが撃沈 やっぱり同じ配点の問題でもABCよりARCのほうがずっと難しいと感じる. 苦手意識による…

ABC251 E - Takahashi and Animals 解説

atcoder.jp 以下の個の行動がある. 行動: 動物と動物に円で餌をあげる 行動: 動物と動物に円で餌をあげる 行動: 動物と動物に円で餌をあげる すべての動物に餌をあげるための最小コストを計算したい. 少し観察すると,次の特徴がわかる. 動物に餌をあげる…

ABC251 D - At Most 3 (Contestant ver.) 解説

atcoder.jp 数列をうまくつくることで,数列から3個以下の数を選んで以下の任意の数をつくれるようにせよという問題 が最大値であるときに解となる数列さえ求めれば,この数列を使って以下の任意の数がつくれるのでを満たす任意のに対する解にもなっているこ…

ABC251 感想・反省

atcoder.jp 結果 atcoder.jp ABCE4完 (69:09) コード github.com 各問題の振り返り A 文字列を適当な回数繰り返し出力するだけの問題 簡単 1.5分消費 B 与えられた数列から3個以下を選んで和としてつくれる数の個数を数える問題 と小さいので,の全探索で良…

ABC250 感想・反省

atcoder.jp 結果 atcoder.jp ABCDE5完 (85:55 + 2ペナ) コード github.com 各問題の振り返り A 隣接マス数を調べる問題 コンパクトに場合分けを書こうとして,行/列がひとつしかないような場合を見落としてし,修正に少し時間食ってしまう. 入出力例がそれ…