1. 程式人生 > >快讀 快寫 模板

快讀 快寫 模板

直接上程式碼

//此為檔案快讀,無法用螢幕除錯
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'); }