ヤマカサのプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

問題解決能力を鍛える!アルゴリズムとデータ構造 Part. 1

第3章 設計技法 (1) : 全探索

競技プログラミングでも基本となる全探索について学びます。全探索は全ての問題の基本となります。

続きを読む

[Dart] 自作の順序を保ったセット

セット

自作の順序を保ったセットは、SplayTreeSet を使います。

import 'dart:collection';

int myComp(String a, String b) {
  return a.compareTo(b);
}

void main() {
  SplayTreeSet<String> tmp = SplayTreeSet((a, b) => myComp(a, b));
  tmp.add('abc');
  tmp.add('bcd');
  tmp.add('abcde');
  print(tmp);
}

C++でint128を使いたい。

int128

AtCoder Library が int128 を要求していますが、僕のC++の環境は MinGW の32ビット版を使用していたので、int128 を使うことができませんでした。

MSYS2

結構前に Codeforces が int128 をサポートしたみたいなので、64ビット版の環境を構築しようと思い、MSYS2をインストールしました。

導入は、

blogs.osdn.jp

をそのままやったんですが、gccのバージョンが10.2.0となってしまいました。Codeforces のバージョンは 9.2.0 らしいので、ダウングレードする必要がありました。

なので、

pacman -S mingw-w64-x86_64-gcc

は実行せずに、ダウングレードについて調べました。

stackoverflow.com

の質問を見ると、古いパッケージが必要なので、

pacman -U http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-gcc-libs-9.2.0-2-any.pkg.tar.xz

pacman -U http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-gcc-9.2.0-2-any.pkg.tar.xz

を実行しました。

あとは、環境変数に "D:\Program\msys64\mingw64\bin" を追加してgccコマンドが使えるようになりました。

感想

そもそも、gcc と g++の違いや、Codeforces の g++ 17 9.2.0 の数字の意味が分からず、どうすればいいのか迷ってました。

今のところは問題なく使えてますが、トラブルが起きたらまた環境構築しようと思います。WSLを使うのが流行りらしいですね?