输入输出优化

Posted MukoiAoi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入输出优化相关的知识,希望对你有一定的参考价值。

被各种变态的出题者出的数据坑到了这里/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倍

很好很强大

 

以上是关于输入输出优化的主要内容,如果未能解决你的问题,请参考以下文章

优化 R 中输出表生成的代码

优化 C# 代码片段、ObservableCollection 和 AddRange

PAT 乙级 1049 数列的片段和

使用 C++ 反转句子中的每个单词需要对我的代码片段进行代码优化

如何优化C ++代码的以下片段 - 卷中的零交叉

一维前缀和 - 包含输入输出优化