• --bestcoder


    Untitled

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
    Total Submission(s): 774    Accepted Submission(s): 423


    Problem Description
    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
     
    不知道为什么必须判断比他大的数啊,老是超时,判断了就不超时了。
    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    
    int t ;
    int n,a;
    int x[25];
    
    bool cmp(int a,int b){
        return a >b;
    }
    
    int dfs(int u,int depth){
    
        if(u == 0)return depth;
    
        int minn  = n+1;
    
        for(int i = depth;i<n;i++){
            int z = u>=x[i]?dfs(u % x[i],depth+1):n+1;
            if( z < minn)minn = z;
    
        }
        return minn;
    }
    
    int main(){
    
    
    
        int t;
        scanf("%d",&t);
    
        while(t--){
    
    
        scanf("%d%d",&n,&a);
    
        for(int i = 0;i<n;i++){
    
            scanf("%d",&x[i]);
        }
    
        sort(x,x+n,cmp);
    
        int minn = n+1;
    
        for(int i = 0;i<n;i++){
    
            int z = a >= x[i]?dfs(a % x[i],1):n+1;
    
            if( z < minn) minn = z;
        }
    
        printf("%d
    ",minn == n+1?-1:minn);
    
        }
    }
    

      

     
  • 相关阅读:
    使用linux将一个服务器上的文件或者文件夹复制黏贴到另一个服务器上
    深度学习之常用linux命令总结
    python 操作MYSQL数据库
    MYSQL登录及常用命令
    mysql数据库可视化工具—Navicat Premium—安装与激活
    Mysql数据库的简单介绍与入门
    java 正则匹配int型
    js设置文本框只能输入数字
    Java数据抓取(一)
    Nodejs的多线程
  • 原文地址:https://www.cnblogs.com/lovelystone/p/4698702.html
Copyright © 2020-2023  润新知