1 条题解

  • 0
    @ 2025-10-8 16:54:19
    #include <bits/stdc++.h>
    using namespace std; 
    int a[10],n,m,b[10],x,y; 
    bool v[10],bk; 
    void dfs(int k) //深搜 
    { 
        if(bk) return ;
    	if(k==n+1) 
        { 
            int s=0; for(int i=1;i<=n;i++) s=s*10+b[a[i]];
            if((s+x)%y==0) //满足条件 
            {
                printf("%d\n",s); bk=1; return ;
            }
        } 
        else
        { 
            for(int i=1;i<=n;i++) 
            { 
                if(v[i]==0) 
                { 
                    v[i]=1; 
                    a[k]=i; 
                    dfs(k+1); 
                    v[i]=0; 
                    a[k]=0; 
                } 
            } 
        } 
    } 
    int main() 
    { 
        scanf("%d%d", &n, &m); for(int i=1;i<=n;i++) scanf("%d", &b[i]);
        sort(b+1, b+n+1);
        while(m--) 
        {
            scanf("%d%d", &x, &y);
            bk=0;
    		dfs(1);
            if(bk==0) printf("None\n");
        }
        return 0; 
    }
    
    • 1

    信息

    ID
    847
    时间
    1000ms
    内存
    128MiB
    难度
    6
    标签
    递交数
    263
    已通过
    74
    上传者