zoukankan      html  css  js  c++  java
  • [BFS] 01组成的N的倍数

    由题

    余数为零 则该串必定为1开头的01串

    由BFS特性可得首解最优

    因此队头1

    向后添加0 或 1

    进行取模搜索

    当前取模值单一后推运算即可

    否则展开规律相同 无意义

    #pragma GCC optimize(2)
    #include <cstdio>
    #include <iostream>
    #include <cstdlib>
    #include <cmath>
    #include <cctype>
    #include <string>
    #include <cstring>
    #include <algorithm>
    #include <stack>
    #include <queue>
    #include <set>
    #include <map>
    #include <ctime>
    #include <vector>
    #include <fstream>
    #include <list>
    #include <iomanip>
    #include <numeric>
    using namespace std;
    typedef unsigned long long ll;
    
    const int MAXN = 1e6 + 10;
    
    ll exz[MAXN] = {0};
    
    /*map <int, bool> exz;*/
    
    ll n;
    
    struct bfsnode
    {
        string ss;
        
        ll num;
        
        bfsnode(string ts, ll x)
        {
            ss = ts;
            num = x;
        }
    };
    
    void searh()
    {
        bfsnode a("1", 1 % n);
    
        queue <bfsnode> Q;
    
        Q.push(a);
    
        while(!Q.empty())
        {
            bfsnode b = Q.front();
            
            Q.pop();
            
            if(b.num == 0)
            {
                cout<<b.ss<<endl;
                return ;
            }
    
            else
            {
                bfsnode t(b.ss + "0", b.num * 10 % n);
                
                if(exz[b.num] == 0)
                {
                    exz[b.num] = 1;
                    Q.push(t);
                }
                
    
                bfsnode k(b.ss + "1", (b.num * 10 + 1) % n);
                
                if(exz[k.num] == 0)
                {
                    exz[b.num] = 1;
                    Q.push(k);
                }
            }
        }   
    }
    
    int main()
    {
        //ios::sync_with_stdio(false);
    
        //cin.tie(0);     cout.tie(0);
    
        cin>>n;
    
        searh();
    
        return 0;
    }
    
  • 相关阅读:
    对象属性操作-包含kvc---ios
    UserDefault的使用,保存小数据到本地-iOS
    单例模式-ios
    值类型和引用类型
    [fn]焦点图JQ插件版
    [f]区间随机数函数
    css3动画特效集合
    js中的事件代理(委托)
    Nodejs入门【转载】保留备用
    canvas打字效果
  • 原文地址:https://www.cnblogs.com/zeolim/p/12270458.html
Copyright © 2011-2022 走看看