zoukankan      html  css  js  c++  java
  • ZOJ 3596 Digit Number(BFS)

    Digit Number

    Time Limit: 10 Seconds      Memory Limit: 65536 KB

    Given an integer n and an integer m, please calculate the minimal multiple of n which consists of exactly m different digits.

    Input

    This problem has several test cases. The first line of the input is an integer T (0 < T ≤ 150) indicates the number of test cases. Each test case is a line of 2 integers n (0 < n ≤ 1000) and m (0 < m ≤ 10)

    Output

    For each test case, if you can find the minimal multiple of n and x satisfying the above condition, please output a line as "x=n*y", otherwise output "Impossible" in a single line.

    Sample Input

    3
    37 1
    2 2
    100 1
    

    Sample Output

    111=37*3
    10=2*5
    Impossible
    

    Author: CAO, Peng
    Contest: The 12th Zhejiang University Programming Contest

    题意:求一个数N的最小的一个倍数中包含M个不同的数字。

    分析:这道题一开始真没想到会用BFS,我用的是最简单粗暴的枚举出倍数判断的方法,果断TLE。

    明显这道题如果用枚举倍数再判断的方法是不行的,因为并没有枚举的上界,倍数可以无限大,所以会超时。

    换个思路,采用BFS从高位试数字,用二进制或运算来记录哪一些数字是出现过的,还有到目前为止除以x后的余数,最大状态总数1024*1000,还要记录路径,因为要输出结果,目标状态是选取了恰好 m 个不同数字,且余数为 0 。路径可以直接用状态在队列里的下标来表示就可以,这种表示法的队列要求用数组,不能用STL。

  • 相关阅读:
    HTML学习笔记-框架(40)
    HTML学习笔记-使用div和table进行布局(36)
    MVC初体验-EF系列(总结)(23)
    MVC初体验-EF系列(延迟加载)(22)
    MVC初体验-EF系列(状态跟踪的修改)(21)
    MVC初体验-EF系列(CRUD)(20)
    回收站清空后立马恢复
    软件体验记录
    复杂网络,抽象语法树
    PHP修改记录
  • 原文地址:https://www.cnblogs.com/clliff/p/4483710.html
Copyright © 2011-2022 走看看