2014.01.14解题报告

来源:互联网 发布:windows xp 更新 编辑:程序博客网 时间:2024/06/08 04:53


cath that cow:
#include<stdio.h>
int main()
{
    int n,k,i,j;
    int a[220000],b[220000];
    while(scanf("%d%d",&n,&k)!=EOF)
    {
        for(i=0;i<220000;i++)
         b[i]=-1;
        i=0;j=0;
        a[j++]=n;b[n]=b[n]+1;
        while(a[i]!=k)
        {
            if(2*a[i]<220000 && b[2*a[i]]<0){a[j]=2*a[i];b[a[j]]=b[a[i]]+1;j++;}
            if(a[i]+1<220000 && b[a[i]+1]<0){a[j]=a[i]+1;b[a[j]]=b[a[i]]+1;j++;}
            if(a[i]-1>=0 && b[a[i]-1]<0){a[j]=a[i]-1;b[a[j]]=b[a[i]]+1;j++;}
            i++;
        }
        printf("%d\n",b[a[i]]);
    }
    return 0;
}




How Many Tables:
#include<stdio.h>
int main()
{
    int t,n,m;
    int a[1001]={1},i,j,r,b;
    scanf("%d",&t);
    for(;t>0;t--)
    {
        scanf("%d%d",&n,&m);
        for(r=1;r<=n;r++)
         a[r]=r;
        for(r=1;r<=m;r++)
        {
            scanf("%d%d",&i,&j);
            i=find(a,i);
            j=find(a,j);
            if(i==j)continue;
            a[j]=i;
        }
        b=0;
        for(r=1;r<=n;r++)
         if(find(a,r)==r)b++;
        printf("%d\n",b);
    }
    return 0;
}

0 0
原创粉丝点击