zoukankan      html  css  js  c++  java
  • UVA 1569 Multiple

    题意:

      给定m个1位数字,要求用这些数字组成n的倍数的最小数字,如果无法组成就输出0

    分析:

      BFS,由于n最大5000,余数最多5000,利用余数去判重,并记录下路径即可

    代码:

      

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <algorithm>
    #include <vector>
    using namespace std;
    const int maxn=5010;
    int n,m,vis[maxn],pre[maxn],ans[maxn],q[maxn];
    vector<int>s;
    void print(int u)
    {
        if(u==-1)
            return;
        print(pre[u]);
        printf("%d",ans[u]);
    }
    int main()
    {
        while(~scanf("%d",&n))
        {
            scanf("%d",&m);
            s.clear();
            memset(vis,0,sizeof(vis));
            int head=0,rear=0;
            int num;
            while(m--)
            {
                scanf("%d",&num);
                s.push_back(num);
            }
            sort(s.begin(),s.end());
            if(n==0)
            {
                printf("0
    ");
                continue;
            }
            int i;
            for(i=0;i<s.size();i++)
            {
                if(s[i]==0)
                    continue;
                int tmp=s[i]%n;
                ans[rear]=s[i];
                pre[rear]=-1;
                q[rear++]=tmp;
                vis[tmp]=1;
            }
            int flag=1;
            while(head<rear)
            {
                int u=q[head];
                if(u==0)
                {
                    print(head);
                    flag=0;
                    printf("
    ");
                    break;
                }
                for(i=0;i<s.size();i++)
                {
                    int temp=((u*10+s[i])%n);
                    if(vis[temp]==0)
                    {
                        vis[temp]=1;
                        q[rear]=temp;
                        ans[rear]=s[i];
                        pre[rear++]=head;
                    }
                }
                head++;
            }
            if(flag)
                printf("0
    ");
        }
        return 0;
    }
  • 相关阅读:
    数据库模糊查询
    Redis集群简介
    POI导出Excel的三种 workbook的区别
    mysql主从跳过错误
    MySQL server has gone away 问题解决方法
    Redis批量删除key的命令
    Python 3.6学习笔记(一)
    maven项目报错
    使用zabbix监控mysql的三种方式
    postgresql初体验
  • 原文地址:https://www.cnblogs.com/137033036-wjl/p/4907534.html
Copyright © 2011-2022 走看看