クイック読み込み
2051 ワード
c++ではcinの読み込み効率は非常に低く、一般的にはscanfを使うことができますが、noip 2011道路が整備され、読み込みデータが超大きい場合もある変態問題もあります.そのため、高速読み込み(デジタルTATしか読めないようですが......)で入力文字をデジタルに変換することができ、効率が高く、入力データ量が特に大きい場合に高速読み込みを採用することで、タイムアウトを避けることができます.もちろん正負は保証されます.
あるいはこう書くこともできます
実は本質は同じです.
inline int read()
{
int k=0;
char f=1;
char c=getchar();
for(;!isdigit(c);c=getchar() )
if(c=='-')
f=-1;
for(;isdigit(c);c=getchar() )
k=k*10+c-'0';
return k*f;
}
あるいはこう書くこともできます
inline int read()
{
int k=0;
char f=1;
char c=getchar();
while(c>'9'||c<'0')
if(c=='-')
{
f=-1;
c=getchar();
}
while(c<='9'&&c>='0')
{
k=k*10+c-'0';
c=getchar();
}
return k*f;
}
実は本質は同じです.