zoukankan      html  css  js  c++  java
  • HDU5339——DFS——Untitled

    There is an integer a and n integers b1,,bn. After selecting some numbers from b1,,bn in any order, say c1,,cr, we want to make sure that a mod c1 mod c2 mod mod cr=0 (i.e., a will become the remainder divided by ci each time, and at the end, we want a to become 0). Please determine the minimum value of r. If the goal cannot be achieved, print 1 instead.

     


    Input
    The first line contains one integer T5, which represents the number of testcases. 

    For each testcase, there are two lines:

    1. The first line contains two integers n and a (1n20,1a106).

    2. The second line contains n integers b1,,bn (1in,1bi106).
     


    Output
    Print T answers in T lines.
     


    Sample Input
    2 2 9 2 7 2 9 6 7
     


    Sample Output
    2 -1
     


    Source
     
    /*
    暴力枚举所有情况取最小值
    */
    #include <bits/stdc++.h>
    using namespace std;
    
    const int MAX = 1e6 + 10;
    int b[MAX];
    int vis[22];
    int n, a;
    int ans;
    
    bool cmp(int a, int b)
    {
        return a > b;
    }
    void dfs(int m, int step)
    {
        if(m == 0){
            ans = min(ans, step);
            return;
        }
        for(int i = 1; i <= n; i++){
            if(m >= b[i])
                dfs(m%b[i], step+1);
        }
    }
    
    int main()
    {
        int T;
        scanf("%d", &T);
        while(T--){
            ans = 1111111;
            scanf("%d%d", &n, &a);
            for(int i = 1; i <= n; i++)
                scanf("%d", &b[i]);
            sort(b + 1, b + n + 1, cmp);
            dfs(a, 0);
            if(ans == 1111111) printf("-1
    ");
            else  printf("%d
    ", ans);
            }
        return 0;
    }
    

      

  • 相关阅读:
    IDEA service/DashBoard 不显示服务端口号
    是否同一棵二叉搜索树
    Tree Traversals Again
    有符号数移位
    tl431基准的用法
    7寸屏电压方案
    test
    合并commit
    重命名commit
    Git 在公司内部的使用规范
  • 原文地址:https://www.cnblogs.com/zero-begin/p/4695838.html
Copyright © 2011-2022 走看看