ウホウホゴリラッホ

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

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

降順sort

実装 vector<int> a(n); sort(all(a)); //昇順 sort(all(a), greater<int>()); //降順 sort(a.rbegin(), a.rend()); //降順</int></int>

隣合うbitのチェック

実装例 Misteerさんのコードを眺めてたら賢いと思ったので記録。 i番目とi+1番目のbitが立っていること独立にやるのではなく(b >> i) % 4 == 3でチェックする。賢い。 ※ 元コードだとvalidationだけど加算に書き換えている。 int w = 8; int sum = 0; for (i…

template付きの関数の書き方

template付きの関数 以下の問題でpriority_queueの昇順・降順を引数で上手いことやりたくて実装した。(これ自体はもっと上手いことやれそう?でも昇順降順で型が違うのでできなさそう?) D - 3N Numbers atcoder.jp Submission #6361635 - AtCoder Regular C…

uniqueにする方法

setもあるけど std:uniqueは隣接する重複要素を削除し配列の前に詰める。削除後の末尾のptriteratorを返却する。 eraseで後ろのゴミになっている部分を削除する。 vector<long long> u(n); REP(i, n) cin >> u[i]; sort(u.begin(),u.end()); //sortしないとuniqueには必</long>…

C++で拡張for文

実装例 const auto&で受けるのが万能そう for(const auto& d : {3, 5, 15, 25, 75}) { cout << d << endl; }

斜め累積和

斜め方向の累積和 斜め方向の累積和を以下の問題で使用した。今後も使いそうなので整理しておく。 atcoder.jp Submission #6315441 - Tenka1 Programmer Contest 実装例 cumの定義は第一引数を、第二引数をとして各斜め線のまでの累積和とした。 ll h, w; ci…