非常短的 fread 读入挂

来源:互联网 发布:apache cxf 2.5.9 编辑:程序博客网 时间:2024/06/05 03:46
#include<bits/stdc++.h>#define ll long longusing namespace std; const int maxn=100005;const int BUF=30000000;char Buf[BUF],*buf=Buf;inline void read(int&a){for(a=0;*buf<48;buf++);while(*buf>47)a=a*10+*buf++-48;}//一句话解决int t,n,m;int fa[maxn];bool book[maxn];int main(){    //freopen("in.txt","r",stdin);    fread(Buf,1,BUF,stdin);//重点    read(t);    while(t--)    {        read(n); read(m);        for(int i=2;i<=n;i++)        {            int x;            read(x);            fa[i]=x;        }        memset(book,0,sizeof book);        int num=0;        for(int i=n;i;i--)        {            if(!book[i])            book[fa[i]]=1;            else            num++;            if(num*2>=m)break;        }        int ans;        if(m<=num*2)ans=(m+1)/2;        else        ans=(m-num*2)+num;        printf("%d\n",ans );    }    return 0;}

原创粉丝点击