输入输出优化

被各种变态的出题者出的数据坑到了这里/sad

1 int read()  
2 {  
3     int num=0; char ch=getchar();
4     while(ch<'0'&&ch>'9') ch=getchar(); //过滤前面非数字字符
5     while(ch>='0'&&ch<='9') {num*=10;num+=ch-'0';ch=getchar();}    
6     return num;  
7 } 
无符号int
int read()  
{  
    int num=0; char ch=getchar(); bool ff=1;
    while(ch<'0'&&ch>'9') {ch=getchar(); ff=-(ch=='-'&&1)} //过滤前面非数字字符顺便判符号
    while(ch>='0'&&ch<='9') {num*=10;num+=ch-'0';ch=getchar();}    
    return num*ff;  
} 
有符号int
 1 double read()  
 2 {  
 3     double ans,bit; int num=0; char ch=getchar(); bool ff=1;
 4     bit=1;
 5     while(ch<'0'&&ch>'9') {ch=getchar(); ff=-(ch=='-'&&1)} //过滤前面非数字字符顺便判符号
 6     while(ch>='0'&&ch<='9') {num*=10;num+=ch-'0';ch=getchar();}
 7     ans+=num;            
 8     if(ch=='.'){
 9             while(ch>='0'&&ch<='9') {bit/=10;ans+=bit*(ch-'0');ch=getchar();}
10             return ans*ff;  
11     }
12     else return ans*ff;  
13 } 
有符号实数

1e7规模以下效率大概是3-4倍正常输入效率

1e7规模以上效率大概是2倍

很好很强大

原文地址:https://www.cnblogs.com/mukoiaoi/p/5908887.html