TechFULの中の人

TechFULスタッフ・エンジニアによる技術ブログ。IT関連のことやTechFULコーディングバトルの超難問の深掘り・解説などを紹介

おすすめプラクティス問題集

突然ですが、みなさんはTechFULのチャレンジ問題やTCBの問題に挑戦するときにどのような練習方法を行っているでしょうか? 様々な書籍、サイトを参考にして自らのスキルを向上させて挑んでいる方も多いとは思いますが、今回はTechFUL内で自分がおすすめする…

好きなテキストで画像分類

こんにちは!TechFUL PROでアルバイトをしているPeyjunです!TechFUL PROでは、人工知能やデータサイエンスに関する問題を作成しています。今回は、昨今の画像分類の分野で注目を集めている、「CLIP」というモデルについて紹介したいと思います。 CLIP CLIP…

指数タワーの値を任意 mod で求める

のように指数を連ねた表記を一般に 指数タワー といいます。また、指数タワーが表す値を 指数タワーの値 と呼ぶことにします。ここで、冪乗の演算は右結合、即ち、積みあがった指数の上側から計算することに注意が必要です。例えば、 となります。 本稿では…

プログラムの「型」を支える理論

プログラミング言語における重要な概念の一つに、「型」があります。しかし型という概念は、プログラミング言語において必須ではありません。 それにもかかわらず多くの言語に型が備わっているのはなぜでしょうか?この記事ではその理由や、型を支える理論に…

サイクル分解の標準形【TCB49第7問の背景】

TCB49第7問目では次のような問題を出題しました。整数 $N, K$ が与えられます。$1, 2, \ldots, N$ の順列 $a$ であって、次の条件を満たすものの個数を $998244353$ で割った余りを求めてください。 $a_i = \max(a_1, \ldots, a_i)$ を満たす $i$ の個数が $…

編集距離を O(NM/w) 時間で求めるアルゴリズム

文字列を比較する際の指標の一つに、編集距離があります。具体的には、編集距離とは「一方の文字列をもう一方の文字列に一致させるために必要な $1$ 文字の置換、挿入、削除の最小回数」のことです(後で詳しく説明します)。 生物情報科学(バイオインフォ…

TechFUL の得点システムを知る

こんにちは、普段はTCBやチャレンジ問題などの上級問題を主に作っている作問担当者の1人です。 今回は、TechFUL上で問題を解いたときに得られる「スコア」について、噛み砕いた説明をしていこうと思います。「スコア」は、毎月開催されるガチコンテストの Te…

クワインの書き方【自分自身を表示するプログラム】

自身のソースコードと完全に同じ文字列を出力するプログラムは Quine (クワイン) と呼ばれます。 Quine は単純に書けるものではありません。 例えば Python3 で print 関数から Quine を書き始めようとすると、引数に渡すべき文字列は自身のソースコードなの…

画像つきボタンを作成する

こんにちは、TechFULでアルバイトをしているAtriaです。 現在はTechFULで出題される問題の作成をしています。 さて、私は趣味でAndroidアプリの開発をしているのですが、その中でどうしてもXML上で 画像つきのボタン が作りたくなりました。 今回はXML上で画…