私はGoogle Code Jamのソリューションのいくつかを見ていましたが、一部の人々はこれまで見たことのないこのことを使用しました。例えば、
2LL*r+1LL
2LLと1LLはどういう意味ですか?
それらのインクルードは次のようになります。
#include <math.h>
#include <algorithm>
#define _USE_MATH_DEFINES
または
#include <cmath>
LL
は、long long
型の整数リテラルを作成します。
2LL
は、タイプlong long
の2です。
LL
がないと、リテラルはint
型のみになります。
これは、次のようなことをしているときに重要です。
1 << 40
1LL << 40
リテラル1
だけで(int
を32ビットと仮定すると、整数型のサイズを超えてシフトする->未定義の動作)。 1LL
を使用して、事前にタイプをlong long
に設定すると、適切に2 ^ 40が返されます。