cin 和scanf,scanf比cin快很多

来源:互联网 发布:战龙三国典藏数据 编辑:程序博客网 时间:2024/04/28 07:28
//#include <iostream>#include <stdio.h>//#include <fstream> //using namespace std;#define MAXN 501#define INF 0x3fffff/*Accepted676K750MS*//*528K157MS*///varint n;int num;int a[MAXN][MAXN];//fstream fin;//functionvoid prim(int u);int main(){   // fin.open("2485.txt",ios::in);    int t;    scanf("%d",&t);    while(t--)    {          scanf("%d",&n);          for(int i=0;i<n;i++)            for(int j=0;j<n;j++)               scanf("%d",&a[i][j]);                             num=0;          //用prim算法计算最小生成树           prim(0);          printf("%d\n",num);    }    //system("pause");    return 0;}void prim(int u){     int *lowset=new int[n]; //表示已经被选择的点到n个点的距离      bool *s=new bool[n];          //初始化lowset和s     for(int i=0;i<n;i++)      {             s[i]=false;             if(u!=i&&a[u][i])                lowset[i]=a[u][i];             else                lowset[i]=INF;     }          s[u]=true;     int p;     for(int i=0;i<n-1;i++)     {             int min=INF;             for(int j=0;j<n;j++)             {                 if(min>lowset[j]&&!s[j])                 {                         min=lowset[j];                            p=j;                 }              }             if(min>num)                num=min;             s[p]=true;             //更新lowset             for(int j=0;j<n;j++)             {                     if(a[p][j]<lowset[j]&&!s[j])                         lowset[j]=a[p][j];             }      }          delete []lowset;     delete []s;}

同一个程序,用scanf输入只要157ms而用cin输入要700多ms。所以对于多数据输入时,用scanf
原创粉丝点击