[[プログラミングコンテスト]] |問題|リンク|備考|h |素数判定|http://arc017.contest.atcoder.jp/tasks/arc017_1|| |ナップザック問題(ダイナミックプログラミング)|http://abc032.contest.atcoder.jp/tasks/abc032_d|データセット1だけ通せばOK| |シミュレーション|http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2311|| |全探索(グリッド)|topcoder SRM 150 Div2 Level 2|| |全探索(幅)|topcoder SRM 453.5 Div2 Level 2|| |全探索(深さ)|topcoder SRM 425 Div2 Level 2|| *ABCコンテスト [#df4e1da7] int a = 3; /* a = 5; */ cout << a << endl; // 3 int a = 5; a = 3; // a = 2; a = 1; cout << a << endl; // 3 cout << 180/*cm*/ << endl; -いわゆる「スコープ」 int a = 0; for (int i = 0; i < 10; i++) { a++; } cout << a << endl; // 10 for (int i = 0; i < 10; i++) { int a = 0; a++; cout << a << endl; // どんな時も1 } // cout << a << endl; // そしてここでaを出そうとするとコンパイルエラー -二次元配列 int a[2][3] = {}; a[0][0] = 0; a[1][2] = 1; // a[2][2] = 0; // メモリバイオレーション! -ソート sort(arr.begin(), arr.end()) -map map<string, int> a; a["moesan"] = 5; a["hamko"] = 24; for (map<string, int>::iterator it=a.begin(); it!=a.end(); it++) { cout << it->first << " => " << it->second << '\n'; } -6Bは、数学力いる。 -8Bは、mapというSTLを使わないとかなりきつい。map使わないと、僕でもめんどい。ググって -9Bは、できなくないけど、かなりむつかしい。これはレギュラーコンテストのA問題レベル。 -10Bは面白いし、もえさんもできる -11Bは、常に'A' < 'a';であることを知らないときつい。大文字のほうが、数字としては小さい。 -7Cがめっちゃ良問 -14B 二進数表記を、"0b"をはじめにつけるものと定義する。 --int型は2進数32桁である。 --例: int a = 3; // 0b00000000000000000000000000000011 int b = 10; // 0b00000000000000000000000000001010 --以下、さすがに0がいっぱいで面倒なので、はじめの0はできるだけ省略して説明する。 --&→aとbで両方同じだったら1、違ったら0を出力 --|→どちらか片方にでも1があれば1、どっちも0なら0 -if (a & (1 << n))の意味は、「aのn bit目が1ならif文の中身を行う」 -a & (1 << n) の意味は、aのn bit目が0なら0、aのn bit目が1なら「2のn乗」 - if文 if (1) { cout << "見える" << endl; } if (104) { cout << "見える" << endl; } if (-1) { cout << "見える" << endl; } if (0) { cout << "見えない" << endl; } if (a & (1 << n)) { cout << "n bit目は1" << endl; } else { cout << "n bit目は0" << endl; } cout << (a & b) << endl; // 0b0011 & 0b1010 = 0b0010 cout << (a | b) << endl; // 0b0011 | 0b1010 = 0b1011 cout << (1 << 2) << endl; // 0b0100 cout << (a & (1 << 5)) << endl; // aの左から5ビット目が0なら0, そうでないなら何らかの数字が入る。 -17Bはちょい大変。以下を実行してみて、理解できれば多分OK for (int i = 0; i < 100; i++) { cout << i << endl; if (i % 5 == 0) i++; } |