• POJ1426Find The Multiple


    http://poj.org/problem?id=1426

    题意 : 输入一个数n,找n的倍数m,这个m所满足的条件是,每一位数只能由0或1组成,在题目的旁边用红色的注明了Special Judge,表示一开始不懂什么意思,后来问的kkk,原来就是,样例的答案真的是样例,只要你输出符合要求的就行,不一定非要输出样例中给的。

    思路 : 这个题分类其实是BFS,但在网上看了某大神博客之后瞬间用了DFS做出来了。。。

    #include<iostream>
    #include<cstdio>
    using namespace std ;
    int mark ;
    void DFS(long long BB,int n ,int floor)
    {
        if(mark)
        return ;
        if(BB % n == 0)
        {
            //cout<<BB<<endl;
            printf("%lld
    ",BB) ;
            mark = 1 ;
            return ;
        }
        if(floor == 19)
        return ;
        DFS(BB*10,n,floor+1) ;
        DFS(BB*10+1,n,floor+1) ;
    }
    int main()
    {
        int n ;
        while(cin>>n)
        {
            if(n == 0) break ;
            mark = 0 ;
            DFS(1,n,1) ;
        }
        return 0 ;
    }
    View Code

    至于到19为什么就回溯了,这个的缘由我也不是很清楚,问了THH,他说是因为无论输入的n是什么,要找一个符合条件的m,都会保持在19位以内,在19位以内肯定会找出一个来

    下面这个是kkk提供的方法,用的BFS,很简单的,队列存储,BFS的话,就是遍历10,11,若不符合条件,就在10后边加1位,可为1可为0,就是100或者101,在11后边再加一位,110,或者111,一直这样找下去,知道符合条件为止

    #include<queue>
    #include<cstdio>
    using namespace std;
    int n ;
    void bfs()
    {
        long long m,p = 1 ;
        queue<long long>Q;
        Q.push(p);
        while(!Q.empty())
        {
            p=Q.front();
            Q.pop();
            for(int i = 0 ;i < 2 ;i++)
            {
                m=10*p+i;
                if(m%n==0)
                {
                    printf("%lld
    ",m);
                    return ;
                }
                Q.push(m);
            }
        }
    }
    int main()
    {
        while(~scanf("%d",&n)&&n)
        {
            if(n == 1)
            {
                printf("1
    ");
                continue;
            }
            bfs();
        }
        return 0;
    }
    View Code
  • 相关阅读:
    Servlet 处理HTTP请求
    Servlet基础知识
    JavaWeb基础知识点①请求响应②comcat③类和类的关系
    MySQL子查询
    聚合与分组
    表联接
    LVS+KEEPALIVED
    tar命令详解
    mysql 安装
    mysql两种备份方法总结:mysqldump 和 xtrabackup
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3283729.html
Copyright © 2020-2023  润新知