ウホウホゴリラッホ

主に勉強したことをまとめていきます。twitter:@pytran3

2019-06-01から1ヶ月間の記事一覧

next_permutationの使い方

結論 これを見ろ vivi.dyndns.org 実装例 sort(all(a)); ll ans = 1e12; do { ll tmp = 0; REP(i, a.size()-1) { tmp += g[a[i]][a[i+1]]; } ans = min(ans, tmp); } while(next_permutation(all(r))); //辞書順に取り出す。辞書順最初に戻るタイミングでfal…

priority_queueの使い方

注意点 デフォルトでは大きいものからpopされる(Python, Javaの逆) 実装例 priority_queue<ll> p; p.push(2); p.push(1); while(p.size()) { cout << p.top() << endl; //参照 p.pop(); //削除 } // 昇順に取り出したい場合はgreaterを使う // 真ん中のvectorは</ll>…

min, maxの求め方

前に調べてたけど記憶から消えていたのでメモ XXX_elementはポインタを返すことに注意 vector<int> a; int min_value = *min_element(all(a)) ; int max_value = *max_element(all(a)) ; 普通のmin,max int min_value = min(1,2); int max_value = min({1,2,3});</int>

出力の誤差死回避

出力のフォーマットを指定 coutに適当にdoubleを渡すと表示桁数が6桁とかになって死ぬらしい。 以下のコードで小数部(fixed)を12桁と指定している。 cout<

多次元配列の動的確保

多次元配列の動的確保の例 vector<vector<ll>> dp; signed main() { ios::sync_with_stdio(false); ll n, m; cin >> n >> m; dp = vector<vector<ll>>(n, vector<ll>(m, 0)); return 0; }</ll></vector<ll></vector<ll>

class, structの勉強メモ

概要 流石に自作の構造体が無いと辛すぎるのでまとめた。お前UF木ライブラリで持ってるの何? 結局よくわからなかったので要復習!! classとstructの違い デフォルトのメンバのアクセス修飾子が違うだけっぽい? class: private struct: public 競プロでは…