zoukankan      html  css  js  c++  java
  • DFS/BFS(同余模) POJ 1426 Find The Multiple

    题目传送门

     1 /*
     2     题意:找出一个0和1组成的数字能整除n
     3     DFS:200的范围内不会爆long long,DFS水过~
     4 */
     5 /************************************************
     6 Author        :Running_Time
     7 Created Time  :2015-8-2 14:21:51
     8 File Name     :POJ_1426.cpp
     9 *************************************************/
    10 
    11 #include <cstdio>
    12 #include <algorithm>
    13 #include <iostream>
    14 #include <sstream>
    15 #include <cstring>
    16 #include <cmath>
    17 #include <string>
    18 #include <vector>
    19 #include <queue>
    20 #include <deque>
    21 #include <stack>
    22 #include <list>
    23 #include <map>
    24 #include <set>
    25 #include <bitset>
    26 #include <cstdlib>
    27 #include <ctime>
    28 using namespace std;
    29 
    30 typedef long long ll;
    31 const int MAXN = 1e4 + 10;
    32 const int INF = 0x3f3f3f3f;
    33 const int MOD = 1e9 + 7;
    34 ll n;
    35 bool ok;
    36 
    37 void DFS(ll x, int step, int dep)  {
    38     if (ok) return ;
    39     if (step >= dep)    return ;
    40     if (x % n == 0) {
    41         printf ("%I64d
    ", x);
    42         ok = true;  return ;
    43     }
    44     DFS (x * 10, step + 1, dep);
    45     DFS (x * 10 + 1, step + 1, dep);
    46 }
    47 
    48 int main(void)    {       //POJ 1426 Find The Multiple
    49     while (scanf ("%I64d", &n) == 1)   {
    50         if (!n) break;
    51         ok = false; ll dep = 1;
    52         while (true)    {
    53             if (ok) break;
    54             DFS (1, 0, dep);    dep++;
    55         }
    56     }
    57 
    58     return 0;
    59 }
     1 /*
     2     BFS+同余模定理:mod数组保存,每一位的余数,当前的数字由少一位的数字递推,
     3         比如4(100)可以从2(10)递推出,网上的代码太吊,膜拜之
     4     详细解释:http://blog.csdn.net/lyy289065406/article/details/6647917
     5 */
     6 /************************************************
     7 Author        :Running_Time
     8 Created Time  :2015-8-2 15:14:33
     9 File Name     :POJ_1426_BFS.cpp
    10 *************************************************/
    11 
    12 #include <cstdio>
    13 #include <algorithm>
    14 #include <iostream>
    15 #include <sstream>
    16 #include <cstring>
    17 #include <cmath>
    18 #include <string>
    19 #include <vector>
    20 #include <queue>
    21 #include <deque>
    22 #include <stack>
    23 #include <list>
    24 #include <map>
    25 #include <set>
    26 #include <bitset>
    27 #include <cstdlib>
    28 #include <ctime>
    29 using namespace std;
    30 
    31 #define lson l, mid, rt << 1
    32 #define rson mid + 1, r, rt << 1 | 1
    33 typedef long long ll;
    34 const int MAXN = 1e6 + 10;
    35 const int INF = 0x3f3f3f3f;
    36 const int MOD = 1e9 + 7;
    37 int mod[MAXN];
    38 int ans[MAXN];
    39 
    40 int main(void)    {
    41     int n;
    42     while (scanf ("%d", &n) == 1)   {
    43         if (!n) break;
    44         mod[1] = 1; int i;
    45         for (i=2; mod[i-1]; ++i)    {
    46             mod[i] = (mod[i/2] * 10 + (i&1)) % n;       //BFS双入口模拟
    47         }
    48         int t = 0;  i--;
    49         while (i)   {
    50             ans[++t] = i & 1;
    51             i /= 2;
    52         }
    53         while (t)   {
    54             printf ("%d", ans[t--]);
    55         }
    56         puts ("");
    57     }
    58 
    59     return 0;
    60 }
    BFS
    编译人生,运行世界!
  • 相关阅读:
    yii分页
    ajax分页
    批删,全选
    网站开发的愿景
    margin collapse 坍塌
    URI URL URN
    Servlet
    Http请求
    进程间通信
    网络编程
  • 原文地址:https://www.cnblogs.com/Running-Time/p/4696607.html
Copyright © 2011-2022 走看看