MENU

2020-06-20から1日間の記事一覧

競技プログラミングのためにインラインアセンブラに入門してみたので解説【入出力,基本命令編】

0.はじめに 僕自身が学んでる途中なので嘘などあるかも知れません 高速化に目覚めたので書いていきます これ使うだけじゃ速くならないと思います SIMD使う前の準備だと思って練習してます atcoderのC++(GCC 9.2.1)準拠です 1.入出力 int main(){ int res; as…

build忘れとはおさらば!関数内に初回のみ実行する処理を入れる(前処理)【C++】

staticな変数を使ってこう出来ます 最初に前処理が必要な競技プログラミングのライブラリに重宝します void f(){ static bool init=0; if(!init){ init=1; //初回実行処理 } //毎回実行する処理 }

【gcc拡張】c++でmain関数の前と後に関数を呼ぶ

gcc拡張により 関数の前に__attribute__(( constructor))を付けると最初に 関数の前に__attribute__(( destructor))を付けると最後に呼ばれます __attribute__((constructor)) void constructor() { cin.tie(0); ios::sync_with_stdio(false); cout<

セグ木の初期化がボトルネックになる際の対処法3選

コード例は抽象化してません あしからず 1.がちがちの動的セグ木を使う コピペありの環境なら一番いいです 思想としてはポインタを使って必要になった時にノードを作るです 構築O(1)です template<typename T> struct dynamic_segment{ struct node; using np=node*; str</typename>…