题解 UVA1569 【Multiple】

· · 题解

本题广搜+优先队列 没得说 看了看这题竟然才两个提交,才想写个这玩意,不然我写的题解一定不会被通过 直接上代码、

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#include<climits>
#include<cfloat>
#include<queue>
using namespace std;
long long r,n,m,rs,ms[5000];
priority_queue<int,vector<int>,greater<int> >q;
void bfs()
{
    for(int i = 1;i <= m;i++)
    {
        q.push(ms[i]);

    }
    while(!q.empty())
    {
        int now=q.top();
        q.pop();
        if(now==0)
            continue;
        if(now%n==0)
        {cout<<now<<endl;return;}
        int td;
        for(int i = 1;i <= m;i++)
        {
            td=now*10+ms[i];
            if(td%n==0)
            {cout<<td<<endl;return;}
            q.push(td);
        }
    }
}
int main()
{
    while(cin>>n>>m)
    {
        for(int i = 1;i <= m;i++)
        {
            cin>>ms[i];
        }
        bfs();
    }
    return 0;
}