C/C++アルゴリズムコンペティションコードフレームワーク
C/C++アルゴリズムコンペティションコードフレームワーク
文書ディレクトリ C/C++アルゴリズムコンペティションコードフレームワーク 一、基本コードフレームワーク 1.最短フレーム 2.ユニバーサルフレーム 二、テストコードフレームワーク 1.時間テストフレームワーク 2.ファイルリダイレクトフレーム 三、究極のフレーム 1.究極のフレームワークコード: 2.究極のフレームワークの説明: 付録
一、基本コードフレームワーク
1.最も簡単なフレームワーク
最初にC/C++に触れたときは,ファイルや関数などの知識がなく,このフレームワークの下で文を書くだけで端末で基本入出力ができることが分かった.(1)C言語 (2)C++
2.万能フレーム
学習が進むにつれて、基本的な入出力は問題を解く需要を満たすことができず、プログラムの作成を容易にするために、事前に常用ヘッダファイルを含めることができます. C言語(共通ヘッダファイルを含む) C+(万能ヘッダファイルを含む) 二、テストコードフレームワーク
1.時間テストフレームワーク
大規模なデータ入力に直面した場合、プログラム実行時間とアルゴリズム効率の比較を大まかに判断する必要がある場合、
パイプテクニック:コマンドラインを使用してプログラム C言語 C++
2.ファイルリダイレクトフレーム
大規模なデータの入出力については、標準入出力をプログラムの同じディレクトリの入力 C言語 C++
三、究極のフレームワーク
1.究極のフレームワークコード:
C++はC言語プログラムと互換性があり、より多くの関数テンプレート、クラステンプレート、アルゴリズムを持っているため、究極のフレームワークはC++言語を採用している.
2.究極のフレームワークの説明: 1.ローカル条件コンパイルマクロ定義のテスト
2.ユニバーサルヘッダファイル
3.定数およびマクロ定義
4.大規模配列定義
5.条件コンパイルファイルリダイレクト文およびランタイムテスト文
ふろく万能ヘッダファイルの定義
文書ディレクトリ
一、基本コードフレームワーク
1.最も簡単なフレームワーク
最初にC/C++に触れたときは,ファイルや関数などの知識がなく,このフレームワークの下で文を書くだけで端末で基本入出力ができることが分かった.
#include
int main()
{
/*code*/
return 0;
}
#include
using namespace std;
int main()
{
/*code*/
return 0;
}
2.万能フレーム
学習が進むにつれて、基本的な入出力は問題を解く需要を満たすことができず、プログラムの作成を容易にするために、事前に常用ヘッダファイルを含めることができます.
#include
#include
#include
#include
int main()
{
/*code*/
return 0;
}
#include
using namespace std;
int main()
{
/*code*/
return 0;
}
1.時間テストフレームワーク
大規模なデータ入力に直面した場合、プログラム実行時間とアルゴリズム効率の比較を大まかに判断する必要がある場合、
ヘッダファイルを使用して、出力された最後の行にプログラムを印刷する時間を使用することができる.clock()
関数は、プログラムの実行時間を取得し、CLOCKS_PER_SEC
はシステムに関連し、両者を除いてプログラムの実行秒数である.データを入力するとプログラムの実行時間がかかるため、ファイルのリダイレクト方法(以下を参照)とパイプのテクニックを使用できます.パイプテクニック:コマンドラインを使用してプログラム
echo |
を実行する#include
#include
int main()
{
/*code*/
printf("
Time used = %f", (double)clock() / CLOCKS_PER_SEC);
return 0;
}
#include
using namespace std;
int main()
{
/*code*/
printf("
Time used = %f", (double)clock() / CLOCKS_PER_SEC);
return 0;
}
2.ファイルリダイレクトフレーム
大規模なデータの入出力については、標準入出力をプログラムの同じディレクトリの入力
data.in
出力data.out
ファイルにリダイレクトすることができる.リダイレクト文:freopen( "data.in", "r", stdin);
およびfreopen( "data.out", "r", stdout);
を使用します.コードを提出する时、必ずこの2行の文を注釈することを覚えています!!!#include
int main()
{
freopen("data.in", "r", stdin); //
freopen("data.out", "r", stdout); //
/*code*/
return 0;
}
#include
using namespace std;
int main()
{
freopen("data.in", "r", stdin); //
freopen("data.out", "r", stdout); //
/*code*/
return 0;
}
三、究極のフレームワーク
1.究極のフレームワークコード:
C++はC言語プログラムと互換性があり、より多くの関数テンプレート、クラステンプレート、アルゴリズムを持っているため、究極のフレームワークはC++言語を採用している.
#define LOCAL //
#include //
/* */
#define INF 10000
const int MAX = 1000000000;
/* */
int Array[INF];
using namespace std;
int main()
{
#ifdef LOCAL
freopen("data.in", "r", stdin); //
freopen("data.out", "r", stdout); //
#endif
/*code*/
#ifdef LOCAL
printf("
Time used = %f", (double)clock() / CLOCKS_PER_SEC);
#endif
return 0;
}
2.究極のフレームワークの説明:
#define LOCAL
マクロがローカルテストに使用される条件コンパイルを定義し、コードをコミットするときにこの行を注釈するだけです.#include //
C++の万能ヘッダファイルで、このヘッダファイルにはほとんどのヘッダファイルが含まれており、具体的なヘッダファイルの内容定義は本稿末の付録部分を参照してください.ほとんどのコンテストとojプラットフォームは万能ヘッダファイルをサポートしていますが、工事での使用はお勧めしません./* */
#define INF 10000
const int MAX = 1000000000;
マクロ定義とconst
定数定義はいずれも定数を定義するために使用することができ、定数の値を変更しやすく、コードの可読性を高めることができ、記憶空間が十分な条件下でconst
定数定義を推奨し、タイプチェックを行うことができる.int Array[INF];
大規模配列をmain
関数の外に定義し、グローバル変数として定義する.1つは、手動で初期化する必要がなく、グローバル変数配列定義後に自動的に初期化することができる.二つ目は、グローバル変数がデータ領域に格納され、スタック領域のオーバーヘッドを低減することである.#ifdef LOCAL
freopen("data.in", "r", stdin); //
freopen("data.out", "r", stdout); //
#endif
#ifdef LOCAL
printf("
Time used = %f", (double)clock() / CLOCKS_PER_SEC);
#endif
リダイレクト文と実行時間テスト文を条件コンパイルに設定し、ローカルコンパイル実行時に入出力をリダイレクトして実行時間を表示し、コードをコミットする場合は、最初の行のLOCAL
マクロ定義注釈を削除するだけでよい.ふろく
#ifndef _GLIBCXX_NO_ASSERT
#include
#endif
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#if __cplusplus >= 201103L
#include
#include
#include
#include
#include
#include
#include
#include
#include
#endif
// C++
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#if __cplusplus >= 201103L
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#endif