edo1z blog

プログラミングなどに関するブログです

C++ ワーシャルフロイド法

参考:素人によるワーシャルフロイド法 - Qiita グラフ コード #define _GLIBCXX_DEBUG #include <bits/stdc++.h> using namespace std; using Graph = vector<vector<int>>; const int INF = 1e9; void warshall_floyd(Graph &G) { int n = G.size(); for (int k = 0; k < n; ++k) { fo</vector<int></bits/stdc++.h>…

C++ ダイクストラ法

blog.logicky.com 上記はPythonでやっていました。C++でやってみます。 参考: 最短経路問題(ダイクストラ法) 対象のグラフ コード #define _GLIBCXX_DEBUG #include <bits/stdc++.h> using namespace std; using Graph = vector<vector<int>>; const int INF = 1e9; int n = 8; // 頂点</vector<int></bits/stdc++.h>…

C++ ヒープ (priority_queue)

優先度つきキューは、何をどういう順序で入れても、優先順位の高いものから順に取り出すことができるキューです。内部的にはヒープを使って実装されます。C++では、priority_queueというのがあります。 コード int main() { priority_queue<int> que; que.push(1)</int>…

C++ clang-format

C++

.clang-format というファイルを作って、下記のようにしたら、vscodeで勝手にコンパクトなフォーマットに整形してくれます。私的にはGoogleというのが気に入りました。他の種類はここに説明が書いてあります。 BasedOnStyle: Googl 今のところ、上記で十分で…

C++ 区間DP

参考: 区間DPを勉強してみた - Kutimotiの競プロメモ 区間DPとは何かと言われるといまいちよく分からないが、上記に書いてあることの仕組みは大体分かった。でもまだボトムアップ型のコードしか見てないけど。ナップサック問題と似ていて、細切れにして計算…

C++ 動的計画法(DP)ナップサック問題

典型的な DP (動的計画法) のパターンを整理 Part 1 ~ ナップサック DP 編 ~ - Qiita なんかややこしい。。 全部愚直に一から毎回計算すると大変なやつを、ところどころ覚えておいて表にでもしておけば、計算量減らせるやん的な雰囲気を醸し出しているやつ…

C++ グラフ・探索

参考サイト DFS (深さ優先探索) 超入門! 〜 グラフ・アルゴリズムの世界への入口 〜【前編】 - Qiita グラフを隣接リストで表す 隣接リストは、各頂点毎に、隣接する頂点の配列を作ります。 #include <bits/stdc++.h> using namespace std; using Graph = vector<vector<int>>; int mai</vector<int></bits/stdc++.h>…

C++のvector

C++

#include <bits/stdc++.h> using namespace std; int main() { // 1 全部0で初期化 vector<int> v(10, 0); cout << "1: "; for(int x : v) cout << x << ' '; cout << endl; // 2 要素数を設定したらデフォルトでは0で初期化されるっぽい(intの場合) vector<int> v2(10); v2.push_bac</int></int></bits/stdc++.h>…

C++ ビット演算・ビット全探索

ビットは0か1の2通りを表せるやつです。 C++でビット列を作る 下記で作れます。 bitset<8> b("101"); bitset<8> b2(5); 上記は、b, b2共に、00000101 です。引数に文字列を渡すと、そのままビット列として扱います。整数を渡すと、10進数から2進数に変換しま…

VSCodeでC++のコードを自動コンパイル・自動実行する

Code Runnerを使うだけでできます。 Code Runner - Visual Studio Marketplace Code Runnerの出力をターミナルにする settings.json に下記を追加します。 "code-runner.runInTerminal": true, 標準入力を受け付けるコードも問題なく実行できます。

VSCodeでC++のデバッグする

環境 windows10 Pro コンパイラなどは、MinGW-w64をインストールしています。下記を参考にインストールしています。 MinGW-w64のダウンロードとインストール | C言語入門 | CppDrive 利用するデバッグツール GDBを使います。 参考 GDBでデバッグするなら-g3…

VSCodeでPHPのデバッグする

VSCodeでXdebugを使うためのlaunch.jsonの設定内容についてメモいたします。 { "version": "0.2.0", "configurations": [ { "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 9000, "pathMappings": { "/var/www/hoge/": "${works…

二分探索

参考:二分探索アルゴリズムを一般化 〜 めぐる式二分探索法のススメ 〜 - Qiita コードはC++です。 int binary_search(int ng, int ok, int key) { while (abs(ok - ng) > 1) { int mid = (ok + ng) / 2; if (isOk(mid, key)) ok = mid; else ng = mid; } r…

C++ 整数の型

C++

C++の整数の型 参考:【C言語/C++】データ型のサイズ・範囲の一覧【32bit/64bit環境】 | MaryCore short型が、16bit int型が、32bit long型が、32bitか64bit long long型が、64bit long型は、パソコンの環境によって、変わってしまうらしいので、確実に64bit…

CakePHP3用のDocker

CakePHP3を使うためのdockerの設定を作りました。CakePHP2も動きます。 PHP 7.2.11 Apache 2.4.25 MariaDB 10.3.22 GitHub - edo1z/docker_cakephp3: Docker for CakePHP3