首页 > 其他 > 详细

51nod 1109 01组成的N的倍数

时间:2015-11-28 13:24:05      阅读:237      评论:0      收藏:0      [点我收藏+]

用01 组成 N的最小倍数

 

这个BFS搜索就好。

类似这道:  ZOJ Problem Set - 1530

每次 要么是0 要么是1, 记入余数,和前驱。

 

#include<bits/stdc++.h>

using namespace std;

struct node
{
    int a,b,pre;
}a[2000000];

void output(int k)
{
    if (a[k].pre !=-1) output(a[k].pre);
    printf("%d",a[k].a);
}

int used[2000000];


int main()
{
    int n;
    scanf("%d",&n);

    a[0].a=1;
    a[0].b=1;
    a[0].pre=-1;

    int L=1;
    int r=0;
      for (int i=0;i<L;i++){
      for (int j=0;j<2;j++)
      {
        r=(a[i].b*10+j)%n;
        if (!used[r])
        {
            a[L].a=j;
            a[L].b=r;
            a[L].pre=i;
            used[r]=1;
            L++;
        }
        if (r==0) break;
      }
      if (r==0) break;
    }

    output(L-1);
    printf("\n");

    return 0;
}

 

51nod 1109 01组成的N的倍数

原文:http://www.cnblogs.com/blankvoid/p/5002425.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!