• CSUST Number Game 题解(bfs+思维)


    题目链接

    题目思路

    第一眼肯定以为是暴力题,其实答案最长可以答案\(10^6\)

    那么求最小的数,并且是数位问题,肯定是\(bfs\)

    然后\(bfs\) ,顺便记录对\(k\)的余数即可,说起来有点麻烦,看代码即可

    如对k的余数出现多次,显然只需要第一次出现的数即可

    代码

    #include<bits/stdc++.h>
    #define fi first
    #define se second
    #define debug cout<<"I AM HERE"<<endl;
    using namespace std;
    typedef long long ll;
    const int maxn=1e6+5,inf=0x3f3f3f3f,mod=1e9+7;
    const double eps=1e-6;
    int k,t,cnt;
    int ban[20];
    bool vis[maxn];
    int lastch[maxn];
    int lastid[maxn];
    signed main(){
        scanf("%d%d",&k,&t);
        for(int i=1,x;i<=t;i++){
            scanf("%d",&x);
            ban[x]=1;
        }
        queue<pair<int,int>> que;
        cnt++;
        que.push({cnt,0});
        while(!que.empty()){
            int id=que.front().fi;
            int val=que.front().se;
            que.pop();
            for(int i=0;i<=9;i++){
                if(ban[i]) continue;
                int nxt=(val*10+i)%k;
                if(vis[nxt]) continue;
                // 0
                if(nxt==0){
                    if(cnt==1&&i==0){
                        continue;
                    }else{
                        vector<int> pr;
                        pr.push_back(i);
                        while(id>1){
                            pr.push_back(lastch[id]);
                            id=lastid[id];
                        }
                        reverse(pr.begin(),pr.end());
                        for(auto x:pr){
                            printf("%d",x);
                        }
                    }
                    return 0;
                }
                // 0
                vis[nxt]=1;
                ++cnt;
                lastch[cnt]=i;
                lastid[cnt]=id;
                que.push({cnt,nxt});
            }
        }
        printf("-1\n");
        return 0;
    }
    
  • 相关阅读:
    php验证码
    php上传
    ajax的用法 资料
    ajax如何使用
    AJAX
    基础概念梳理 :
    ICompare 可比较接口
    强类型 和弱类型 c#
    .ne 基础(2)
    .net 基础(一)
  • 原文地址:https://www.cnblogs.com/hunxuewangzi/p/15459429.html
Copyright © 2020-2023  润新知