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

popcount bitcount 関数 C++

int popcount(signed t){ return __builtin_popcount(t); } int popcount(ll t){ return __builtin_popcountll(t); } 参考 maroonrkさん https://atcoder.jp/contests/agc038/submissions/7633722?lang=ja

ラムダ式のサンプル lambda

型 auto f = [&](){ a++; }; 利点 main関数内で関数が定義でき、main関数内の変数にもアクセスできる よって「関数に分離したいが変数をグローバルに書き直すのが面倒」を省略できる 実例 // 二分探索の判定関数 auto can = [&](ll center){ ll sum=0; rep(i…

F - Strivore

Quiz https://atcoder.jp/contests/abc171/tasks/abc171_f 有益なTweet引用 Fは昨日のAGCのおかげで割と速く解けた.「操作列の結果としてあり得るものの個数」を求める時は,結果に重複が生じないように操作列に制約を加えてから操作列の個数を数える,とい…

C - One Quadrillion and One Dalmatians 26進数っぽいもの

ABC

Quiz https://atcoder.jp/contests/abc171/tasks/abc171_c Submission https://atcoder.jp/contests/abc171/submissions/14599113 解説 editorialの通りなのですが、261, 262, ..., で分割されるグループごとに考えて、答えが何桁かを求める(それをX桁とす…

文字列の落とし穴 C++ 「リテラル文字列はそのアドレスを返す」

// そもそもできない string s = "aaa" + "bbb"; // できるけど、sには謎の文字列が入る。"a"は入らない string s = ""+'a'; 「リテラル文字列はそのアドレスを返す」を意識すると、2つ目のコードは""でどこか領域が確保され、+'a'によってアドレスがオフセ…

B - fLIP O(N)解法

Quiz https://atcoder.jp/contests/code-festival-2017-quala/tasks/code_festival_2017_quala_b 解説 editorialにO(N)でも可能と書いてあったのでやってみた 行への操作を全探索する 縦への操作をa回行って、Kが実現できるかを考える 下記画像の最後の式を…

multiset erase (数値指定 / iterator指定)

sorted 適当に突っ込んでからprintしてみると、ソートされていることが分かります #include<bits/stdc++.h> using namespace std; int main(){ multiset<int> se; se.insert(5); se.insert(3); se.insert(5); se.insert(2); se.insert(7); for(int v : se){ cout << v << endl; }</int></bits/stdc++.h>…

No.1076 寿司打

Quiz https://yukicoder.me/problems/no/1076 解説 editorialのように方程式一発でやるとかっこいい でも今回は基本に立ち返って求めてみると、以下のようになります 「等比数列の和の公式」を使いました

複数のC++をコンパイルしたものをつなげる(例:a.out, b.out, ...)

3パターン書いてみた。 Pythonでつなげる Pythonのsystemからa.outなどを実行して出力をファイルに書き、別の行でb.outを呼ぶ 参考:「グルー言語」 windows batを書く これもシンプル Unix (Linux)のパイプを使う 想定 a.cppとb.cppがあり、コンパイルした…

ブラウザの履歴を管理してください

というお題が出たとする 戻る・進む・クリア・仕様変更に対応したい シンプルにvectorを使うのがいいだろう 今回確かめたかったのは、構造体を定義したとして、実際の変数を波括弧で作れるかどうか 作れました。シンプルな書き方を知っておくのは良いこと #i…

判別式・2点を通る直線・2次方程式の解(x1,x2)

タイトルにある3つを関数化した // 判別式 ll discriminant(ll a, ll b, ll c){ return b*b - 4*a*c; } // 2次方程式の解(x1, x2) pair<ld,ld> quadratic_equation(ll a, ll b, ll c){ ll D = discriminant(a,b,c); ld x1 = (-b-sqrt(D))/(2*a); ld x2 = (-b+sqrt(D</ld,ld>…