C/C++

ICPC2012 新入生教育編2 全探索

本日は新入生に向けて探索のテクニックを伝授した。以下は、その練習問題と解説を記す。 (ここ教えたほうがいいとかフィードバックあったらコメントにお願いします) 部分和探索 24個の正の整数の並び中で連続した5つを取り出した時、最大値を求めなさい (な…

ICPC2012 新入生教育編1 ループと配列と

本日は新入生に向けて配列・ループのテクニックを伝授した。以下は、その練習問題と解説を記す。 (ここ教えたほうがいいとかフィードバックあったらお願いします) 和の合計問題 n個のボールが与えられ、i番目のボールには数字a[i]が記されています。 ボール…

参照型で高速化と省メモリ化

構造体やクラスなどで新しい型を作った場合。 特殊な技法を使わない場合に無駄にコピーされ時間やメモリが使われることがあります。 そんな例を以下に示します。 #include <iostream> using namespace std; struct Vect { int x,y,z; }; void printVect(Vect vect) { c</iostream>…

プリプロセッサとインクルードガード(C/C++)

C/C++にてファイル分割を行う際に問題となる点がありました。 ヘッダファイルには各種ソースファイルの共通部分を置きたいのですが 何度も読み込まれる可能性があるにも関わらず定義は1度しか行えないということです。 (以下を参考:宣言と定義とファイル分…

宣言と定義とファイル分割(C/C++)

C/C++にて、コンパイルの対象となるのはソースファイルです。例として以下のようなものが挙げられます。 // main.cpp #include <iostream> using namespace std; int mul2(int x) { return x*2; } int main() { cout << mul2(3) << endl; return 0; } また、次のように</iostream>…