HACK TO THE FUTURE 2023 本戦オープン参加記(7位)

atcoder.jp 1,297,045点でオープン7位でした。(点数を得た参加者は83人)。 ビジュアライザも使いやすくて楽しいコンテストでした。問題が面白くて、レートも賞金ももらえないのに6時間くらいやってしまいました。 問題概要 Dowsing Rodという問題でした。 …

rust-lang / regexは線形時間で正規表現のマッチが出来るらしい

この記事は Rust Advent Calendar 2022 1日目の記事です。 正規表現によるパターンマッチについて、ナイーブな深さ優先探索による正規表現のマッチを考えるとパターンの複雑さによって計算時間が大幅に変化しそうです。例えば文字列 aaaaaaaa がパターン (aa…

天下一 Game Battle Contest 2022 参加記

2022-09-23に行われた天下一 Game Battle Contest 2022に参加し9位入賞しました。途中サーバー側が不安定になりコンテスト時間が延長されるトラブルがありましたが、ドキュメントやビジュアライザなど丁寧に用意されており非常に楽しいコンテストでした。 予…

転職して1ヶ月経った。コーチングしてもらいたい。

estieに転職して1ヶ月経ちました。試用期間はあと2ヶ月残っています。 今月入社ということで営業日は19日。 エンジニアとして採用と技術広報に半分くらいのリソースを使いながら、エンジニアとしてこれまで触っていなかった技術も勉強&使用しつつとても楽…

Rust 1.60.0で安定化されたSource-based Code Coverageを試してみる

本日リリースの Rust 1.60.0 の目玉機能の一つであるSource-based Code Coverage(バイナリ実行時に行レベルでの実行回数を記録する機能)を動かしてみました。 手順を覚えておくと手元で簡単に実行時のカバレッジ計測ができてデバッグに役立ちそうだと感じ…

Rustで速習ゲーム木探索

二人零和有限確定完全情報ゲームである三目並べを作ってゲーム木探索を学びましょう。ボードゲームの強いAIが作れるようになります。本記事のゴールであるモンテカルロ木探索に向けて全探索・ランダム・原始的なモンテカルロ探索・モンテカルロ木探索の順で…

Rustを始めるためのフローチャートと学習資源

2022年に向けてRustを初めたい人向けにRustを始めるためのフローチャートと学習資源の紹介をします。 環境構築 rustup.rs - The Rust toolchain installer 本当にコマンド1行でインストールできるので今すぐやりましょう。 Rust Playground オンラインで動か…

pydub.split_on_silence を使ってm4a,mp3,wavの無音部分を削除する

音声ファイルから無音部分をトリミングして保存するプログラムを書きました。 実装方法 pydubというライブラリを使います。 silencesplit_on_silenceという( str.split() のような)無音部分を削除する関数が用意されています。 ソースコード recording-fil…

『CODINGAME SPRING CHALLENGE 2021』参加記(Gold 1425th)

CODINGAME SPRING CHALLENGE 2021に参加しました。何も分からん。 コンテストについて コンテストはこちら。 www.codingame.com ルール ルールは、いなにわさんのブログが詳しいです。翻訳ありがとうございます。 inaniwa.hatenablog.com 結果 1652位/6867人…

天下一 Game Battle Contest 2021 Springで24位でした。

KLab主催の天下一 Game Battle Contest 2021 Springで24位でした。 github.com すべてのタスク2つ組について、共通なsuffix・prefixを削除して連結した文字列を考え、単位時間あたりの内部に含まれているタスクを考慮した合計得点が最大の連結タスクを全ての…

build.rs から標準出力への出力内容は -vv フラグをつけると確認できる

結論 build.rs で print デバッグができなくて困っている方は cargo build -vv を実行すると幸せになれると思います。 こんちには、matsu7874です。 Cargo は build.rs というファイルを作成しておくと、 cargo build 時に src/ 以下のコンパイルの前に buil…

平方根の値を計算する方法(二分法・ニュートン法・開平法)について

平方根の値を計算する3種類の方法(二分法・ニュートン法・開平法)について紹介し、それぞれPythonとRustでの実装例を示しました。

2020年の私について

2020年を振り返りました。

私も『実践Rustプログラミング入門』を書きました

先日、Rustについての書籍を共著で出版させていただきました。 勤務先のフォルシア株式会社1ではShinjuku.rs2という勉強会を定期的に開催しているということで、秀和システム社から執筆の打診を受けて開始したものです。 覚えていること これまでいろいろな…

Rustについての書籍を共著しました

この度、機会を頂いて、秀和システム社からRustについての書籍を出版させていただくことになりました。 勤務先のフォルシア株式会社でShinjuku.rsという勉強会を定期的に開催しています。 これまでにご登壇いただいたすごいエンジニアの方6名と共著させてい…

SRM788 Div2

2020/07/24にTopcoderで行われたSRM788の参加記です。 公式解説はTopcoder Single Round Match 788 Editorials | Topcoderです。 Easy NextOlympics "YYYY.MM.DD" 形式で今日の日付が与えられるので東京オリンピックの開催予定日である"July 23rd, 2021"まで…

CODINGAME SPRING CHALLENGE 2020で初Silverを獲りました。

"CodinGame Spring Challenge 2020"に参加しました。 CodinGameにはリーグという階級分けの制度があり、各リーグのBOSSを基準にWood2, Wood1, Bronze, Silver, Gold, Legendと登っていきます。今回のコンテストで初めてSilver(の上位)まで到達することができ…

フォルシアと競技プログラミングと私

フォルシアと私 私がフォルシアで働き始めたのが2016年なので、もうすぐ丸4年が経ちます。 キャッチコピーは「見つからなければ、始まらない」から「見つけることから、始めよう。」に変わり、ビジネスも「検索」の受託からより大きな「意思決定のサポート」…

作問時のCI環境をTravis CIからGitHub Actionsに移行する方法

競技プログラミングのコンテストを作る際に、作問補助ツールであるRimeを使います。これまではPush時にTravis CIでテストが回るようにしていたのですが、GitHub Actionsに移行してみました。設定を共有します。 Travis CIの例 かつてはTravis CIを使っていま…

2019年に買った689明細から選ぶ買ってよかったものベスト31

どうやら2019年にAmazonで689明細の注文をしていたようで、買ったものを振り返るついでに買ってよかったものを紹介していきます。 本部門 本部門と本以外部門しかないのですが、まずは本部門から紹介していきます。 技術書部門 失敗から学ぶRDBの正しい歩き…

RustのCLIツールにバージョン情報を出力するオプションを追加する方法

Rust Advent Calendar 2019の24日目の記事です。 バイナリファイルを配布して運用してもらうとなると、version情報の出力は必須オプションですね。 この記事ではCargo.tomlのversionを出力する方法を、RustでCLIツールを開発する際の標準的なcrateであるClap…

4年目LTというイベントを企画している話

同期のエンジニアって何をやっているか知っていますか?規模やカルチャーの違う会社のことは分からないですよね。 新卒4年目のエンジニアでキャリアやこれまでの仕事について話すLT会を企画しています。 forcia.connpass.com 12/17(火)ですが、もう少し参加…

ABC147 E Balanced Pathでbitset高速化を完全に理解する

本番で通せなかったABC147のE問題『Balanced Path』について、反省していきたいと思います。 問題概要 H*Wのグリッドの各マスに数が2つ書かれている。グリッド上を(0,0)->(H,W)にy+1orx+1で移動するとき、経路上の各マスについて、いずれかを選び、「その合…

Search Engineering Tech Talk 2019 Autumnで検索の話を聞いてきました。

検索についての勉強会であるSearch Engineering Tech Talk 2019 Autumnに参加しました。ハッシュタグは#searchtechjp。 今回のスポンサーはスマートニュース様のイベント用スペースでした。イベント用スペースを持っているなんてすごい。 会場についてびっく…

マクロ経済系ワーカープレイスメント ナショナルエコノミー

ナショナルエコノミーは、1~4人で国を共有しながら、各自の事業を経営するワーカープレイスメントゲームです。プレイヤーは最も多くの勝利点≒貨幣を集めることを目的にします。このゲームの特徴的なところは労働者に賃金を払う必要があるところです。徐々に…

なぜ"Colorful Hats 2"に35分も掛けてしまったのか。

Colorful Hats 2は三井住友信託銀行プログラミングコンテスト2019のE問題です。本番ではこの問題に35分かかったので、振り返りをします。 三井住友信託銀行はどこに競技プログラマ需要があるのでしょうか?気になりますね。 問題概要 a = [A[0:i-1].count(A[…

HACK TO THE FUTURE 2020予選の参加記

2019/11/02に行われたHACK TO THE FUTURE 2020予選に参加しました。 解法はダイクストラ(曲がり回数100ゴールからの距離を負のコスト+4近傍のブロックの個数の2乗-ゴールからのマンハッタン-5)からの不要矢印削除で、最終成績は07:32に提出した4,941,365点…

第22回 Lucene/Solr勉強会 参加レポート

第22回 Lucene/Solr勉強会 #SolrJP @Mercariに参加しました。20分のトーク3本と懇親会中のLT2本の内容でした。内容を紹介します。

コンテストの開き方(ゆるふわ競技プログラミングオンサイト編)

ゆるふわ競技プログラミングオンサイトについて、コンテスト準備の流れを書こうと思います。主にHackerRankでの開催を念頭においています。今後、有志コンテストを開く方の参考になれば幸いです。

Rimeの使い方 誤答の区別とHackerRank用の出力方法について

この記事では作問補助ツールRimeの使い方のうち、誤答の種類を区別する方法とHackerRank用のzipファイルの作り方を解説します。 その他の情報が欲しい方は、下記の記事と公式ドキュメントを読みましょう。ほとんどのことが書かれています。 Rimeの使い方 - b…