码迷,mamicode.com
首页 > 其他好文 > 详细

Poj(1426),BFS

时间:2016-08-01 11:57:57      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:

题目链接:http://poj.org/problem?id=1426

可能数据比较水,没有用到大整数。刚刚开始的时候,想从后往前加0或者1,发现有点难写,后来想到先放一个1,再1*10,1*10+1,这样也可以存遍历这种只有0和1的数,但是发现STL写队列会T,后来队列自己写,就A了。

#include <stdio.h>

long long Q[10000000];

int main()
{
    int n;
    while(scanf("%d",&n),n)
    {
        int front = 0;
        int rear = 0;

        Q[rear++] = 1;
        while(1)
        {
            long long tmp = Q[front++];
            if(tmp%n==0)
            {
                printf("%lld\n",tmp);
                break;
            }
            Q[rear++]=tmp*10;
            Q[rear++]=tmp*10+1;
        }
    }
    return 0;
}

 

Poj(1426),BFS

标签:

原文地址:http://www.cnblogs.com/TreeDream/p/5724992.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!