快讀 快寫 模板
阿新 • • 發佈:2018-11-27
直接上程式碼
//此為檔案快讀,無法用螢幕除錯
char buf[1<<15],*fs,*ft;
inline char getc() { return (ft==fs&&(ft=(fs=buf)+fread(buf,1,1<<15,stdin),ft==fs))?0:*fs++; }
inline int read()
{
int x=0,f=1; char ch=getc();
while(!isdigit(ch)) { if(ch=='-') f=-1; ch=getc(); }
while(isdigit(ch)) { x=(x<< 1)+(x<<3)+(ch^48); ch=getc(); }
return x*f;
}
//一般快讀
//注意這個快讀是非常的重要的,我想這應該是想要在OI這條路上走遠的所有OIer必須會的東西,
//養成每次寫題目都加上快讀的好習慣,有可能會在關鍵的時候救你一命!
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<string>
#include<algorithm>
#include<vector>
#include<map>
#include<stack>
#include<queue>
#include<deque>
#include<set>
#include<cctype>
//可以換成#include<bits/stdc++.h>
using namespace std;
inline int Read()
{
int F=1,Num=0; //F是記錄數字是否為負數,Num儲存讀入的數字
char ch=getchar(); //getchar()讀取一個字元
while(ch<'0'||ch>'9') //isdigit()判斷是否為數字
{
if(ch=='-') F=-1; //如果讀入的字元是符號,標記F
ch=getchar(); //繼續讀字元
}
while(ch>='0'&&ch<='9') //如果當前讀入的字元是數字,則將整個數字全部讀入
{
Num=Num*10+ch-'0'; //將讀入的ASCII字元轉換為數字
//或者上面的程式碼可以這樣寫:Num=(Num<<1)+(Num<<3)+ch-'0';
ch=getchar(); //讀取下一個字元
}
return Num*F; //將讀取完畢的字元返回
}
int main()
{
int a,b;
a=Read();
b=Read();
//讀取a和b,等價於cin>>a>>b;
}
//靈魂快讀,編譯較快
int read()
{
int a;
cin>>a;
return a;
}
//快寫
void put(int x)
{
if(x==0)
{
putchar('0'),putchar('\n');
return;
}
if(x<0) putchar('-'),x=-x;
int num=0;
char ch[16];
while(x) ch[++num]=x%10+'0',x/=10;
while(num) putchar(ch[num--]);
putchar('\n');
}