Pの競プロ記

競技プログラミングに関することを書きます。

C/C++

ARC #034 C : 約数かつ倍数

概要正整数A、Bが与えられる。A!の約数かつB!の倍数であるような正整数の個数を1,000,000,007で割った余りを求めよ。1<=B<=A<=10^9 A-B<=100http://arc034.contest.atcoder.jp/tasks/arc034_3

TopCoder SRM 633 Div2 Medium : Jumping

概要 二次元平面があり、(0, 0)から(x, y)へ移動したい。あらかじめ移動する距離リストが決められていて、それらを全て使って移動したときに目的地に辿り着けるか判定する問題。各移動先の座標は整数でなくてもよい。解法 TopCoder SRM 633 Div1 Easy : Peri…

ABC #012 B 入浴時間

概要 問題文はこちら http://abc012.contest.atcoder.jp/tasks/abc012_2解法 やるだけ。printfのフォーマット指定を復習したかったのでメモ。 http://www.k-cube.co.jp/wakaba/server/format.html表示桁数は、.で決める。 また、リーディングゼロの指定もで…

homebrewでgcc4.9を入れたお話

今から書く内容はMacOS Xに関することです。最近(というほど最近ではないかもしれないけれど)競プロでよく見かけるC++のライブラリ #include &ltbits/stdc++.h>、私も使ってみたかったんですよ。で、コンパイルしてみると... fatal error: 'bits/stdc++.h' f…

C++のvectorで多次元配列を使うときのメモ

グローバルで用意したvectorを多次元配列として扱うとき、配列のサイズをどのように動的に定義するかーというお話。「どうやって書くんだっけ?」とコード書いてるときに手が少し止まってしまったので再確認の意を込めて... #include <iostream> #include <vector> using names</vector></iostream>…

同一要素の削除 〜uniqueとerase〜

配列内に含まれる同一要素を削除する方法についてのメモ。 #include <iostream> #include <vector> #include <algorithm> #include <cstdlib> using namespace std; int main() { srand(5); vector<int> vi; for(int i = 0; i < 10; i++) { vi.push_back(rand() % 5); } for(int i = 0; i < vi.size(); i</int></cstdlib></algorithm></vector></iostream>…

mapのfindとcountについてのメモ

「連想配列のキーが存在するかどうかを調べるときに使うfindとcountの実行速度に違いがあるのか??」という疑問をTwitterに投げたらくりんぺっとさんが教えてくれました。ずばりfindもcountも速度に違いはほとんどないみたいです。というのもcount(x)の内部…

小数点の切り上げ・切り下げについてのメモ

・ceil()は切り上げ: ceil(1.5) -> 2・floor()は切り下げ: floor(1.5) -> 1・round()は四捨五入: round(1.5) -> 2, round(1.4) -> 1

next_permutationについて

C++のnext_permutationについてのメモ。この関数は昇順にソートされている配列の全ての組み合わせを作ることができます。 (※要 #include ) - 【追記】 eomoleさんが「next_permutation の悲劇はすべての順列を作れるなんて説明しているからであって、その名…

文字列の扱いメモ 〜 stringstream 〜

今まで使ったことないような書き方を覚えたのでメモしておきます。stringstreamを使うといろんな型の値を文字列にできたり、その逆もできます。 istringstream + ostringstream = stringstream という解釈でいいのだろうか…。この記事を参考にしました、感謝…

小数点表示について(setprecision)

小数点を自分が出力させたい分だけ出力させるとき、私はいつもprintfを使っています。が、C++にはsetprecisionというものがあるのでその使い方について少しばかりお勉強です。【使い方】 cout #include ← これ必須【ソースコードとその出力結果】 #include <iostream> </iostream>…

switch - case 文

先日、ふとswitch-case文を書こうとした時に「アレっ?」って少し手が止まってしまったので一度復習しておきます。(日ごろif文ばっかりで使う機会あんまりないもんなー)参考記事: 初心者のためのポイント学習C言語形式は以下の通りです。 switch (式) { c…

数値演算のアルゴリズムについて

こちらを参考にしてお勉強しました。 #include が必須です。accumulate()指定された範囲内の要素を全て足します。第3引数には初期値を入れます。inner_product()指定された範囲内の要素を全て掛けます。第4引数には初期値を入れます。partial_sum()指定さ…

文字列に関するメモ的な何か。

文字列に関する自分の知識が曖昧だったので、少しまとめたいと思います。○文字列ソートほげほげ まずこのようなものを書いてみました。 #include<iostream> #include<string> #include<algorithm> using namespace std; int main(){ string s; cin >> s; cout << "そのまま出力 : " << s <</algorithm></string></iostream>…